我在Windows 10机器上,我有2个文件,main.cpp和cuda.cu(我已经在Ubuntu上成功构建了这个项目,我试图使其在Windows上构建)。我将它们都编译为64位体系结构的目标文件。我当前安装了MS Visual Studio 2010,我知道它太旧了。如果您认为是造成这种情况的原因,则可以安装2015年版(但我认为不是)。
当我尝试使用命令链接两个文件时
nvcc main.obj cuda.obj
我收到此错误:-
main.obj : fatal error LNK1143: invalid or corrupt file: no symbol for COMDAT section 0x6
我该怎么办?
答案 0 :(得分:2)
@RichardCritten指出,
文件应使用MSVC进行编译,因为对象格式为 特定于工具链。 LNK1143来自MS链接器,它不能 了解其他产生的obj文件的格式 工具链。
因此,MinGW的g ++创建的目标文件无法与使用MSVC的cuda程序的目标文件链接