我在VS2017中创建了Win32程序,并将其转换为x64版本配置。
我发现链接器中用apply
评估的输入库仍指向32位库。
由于64位程序出于某些原因不能使用32位DLL,我认为这与不能使用32位LIB的原因相同。
为什么Visual Studio中的64位项目可以使用32位静态库? 困惑,等待任何建议。
答案 0 :(得分:1)
x86和x86-64是2种具有不同指令集的不同体系结构。每个指令集就像一种不同的语言,因此,这些架构上的二进制文件无法链接在一起,因为一种架构无法理解另一种架构的“语言”。即使使用相同的指令集,也可能会有多个calling conventions,这意味着有时如果使用不同的约定,则无法链接两个32位对象
动态库和静态库都是...库。必须在某个时刻(运行时或链接时)将它们与已编译对象链接。如上所述,无法在架构中链接不同的二进制文件,这就是为什么您需要64位应用程序的64位库