main.obj:致命错误LNK1143:文件无效或损坏:COMDAT部分0x6没有符号

时间:2018-06-20 14:48:45

标签: c++ cuda g++ nvcc

我在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

我该怎么办?

1 个答案:

答案 0 :(得分:2)

@RichardCritten指出,

  

文件应使用MSVC进行编译,因为对象格式为   特定于工具链。 LNK1143来自MS链接器,它不能   了解其他产生的obj文件的格式   工具链。

因此,MinGW的g ++创建的目标文件无法与使用MSVC的cuda程序的目标文件链接