在Qt中链接obj文件
Linking obj file in Qt
我需要在我的c++项目中使用由Jonathan Shewchuk开发的三角测量库。问题是C文件必须编译成目标文件,我已经使用提供的make文件和visual studio编译器完成。这将生成triangle.exe和triangle.obj。
此外,在Qt I中包含头文件triangle.h和object作为LIBS += path/triangle.obj
由于在triangle.c中有main函数,我得到以下链接错误:
LNK2005 that _main is already defined in main.obj
LNK2019 unresolved external symbol _triangulate reference
我以前从来没有使用过对象引用,所以如果有人可以帮助我这个
首先,让我们非常简单地向您解释基础知识。
在C/c++中,编译时首先生成目标文件(.o)。它们由二进制形式的函数定义组成,但不能执行。
之后,调用链接器来链接这些对象文件以生成可执行文件。
在一个程序中,你只能有一个主函数,一个唯一的入口点。
当你写LIBS += path/triangle.obj
时,它是不对的。windows上的库是.dll(动态)或. A(静态)文件。
为了解决你的问题,我看到了两种不同的解决方案:
1- easy !
创建一个Qt/c++程序,在你需要的时候调用你的"可执行三角测量"。这样你就可以用不同的编译器分别编译它们,等等……您可以使用QProcess
类启动外部程序。
2- Less easy:/
修改源文件,删除主要功能,配置Qt/make,使其具有适当的编译命令行,使其工作。我不想解释更多,因为我强烈建议您选择第一种解决方案;)
相关文章:
- 如何在.obj文件上运行IlDasm?
- 在 opengl 中渲染 obj 文件时出现黑窗口
- 使用 Boost.Spirit 解析具有混合数据类型的 OBJ 文件?
- 正在读取 obj 文件!(指数)
- OBJ 文件C++与 ubuntu 问题
- 移植DXUT SDKMesh以导入OBJ文件,在哪里添加纹理坐标和索引
- 将多个网格放入单个波前 OBJ 文件中
- Python 脚本到 c .obj 文件
- CMake:如何在包含的标头更改时自动重建 .obj 文件
- 如何读取 .obj 文件?
- 合并 c++ obj 文件以进行 C 链接
- 我无法在 Flutter 桌面嵌入项目(在 Visual Studio 上)中创建 obj 文件
- 如何在没有CRT的情况下链接OBJ文件
- GCC.obj文件输出不具有确定性(.debug_info,PROGPITS部分)
- 将 Obj 文件导入 vtk
- Visual Studio C++ Copy obj 文件而不是编译
- 在C/C (JIT)中,在运行时加载并链接OBJ文件
- 尝试加载DirectX 11中的obj文件时,向量下标
- 用Assimp导入OBJ文件
- 错误LNK2005结构已在.obj文件中定义