在64位环境编译代码看到LNK2001错误。然而,代码编译在x86的环境优良

问题描述 投票:0回答:1

我看到下面与环境的x64编译集链接错误。

somefile.def : error LNK2001: unresolved external symbol _somesymbol
somepath\somefile.lib : fatal error LNK1120: 1 unresolved externals
gmake[2]: *** [somepath\somefile.dll] Error 1120

当我在86被查somefile.def产生时,它也有同样的以上符号,不同之处有它有双下划线(“__somesymbol”)。请告诉我这背后的原因是什么?该代码同时包含C&C ++文件。

在精心的解释最好解决此问题的任何人都可以帮忙吗?

谢谢

c++ c linker dllexport lib
1个回答
0
投票

标识符不得到64位代码进行装饰。幸福是不必要的,64没有调用约定的一大堆。验证此与链接器的地图文件,应该是纯somesymbol没有一个前导下划线。所以,你一定需要相应地修改.def文件,我们不能看到它从这里开始。不要利于__declspec(dllexport)属性。 - 汉斯帕桑特

我调整了化妆的代码来生成的,而不是“_somesymbol”“somefile.def”与“__somesymbol”,并能成功建立我的64位资料库和dll文件。 - Samanyu

© www.soinside.com 2019 - 2024. All rights reserved.