在Visual Studio 2008中,如果配置类型是静态库,则在项目属性中看不到链接器选项。我需要为静态库指定/MACHINE:x64选项。我试图在Librarian的命令行选项中指定此选项。只有这样,我才能构建静态库。如果我不指定/MACHINE,则编译静态库将失败
LNK1112:模块机器类型“X86”与目标机器类型“x64”发生冲突(即使我将解决方案的平台设置为X64)也是如此。

通过/Project:Properties-Librarian将/MACHINE:X64指定为命令行,可以构建静态库,但是在相同的解决方案中,其他项目(配置类型:DLL)在构建DLL并尝试运行时,都依赖于静态lib。使用库中的功能之一,我再次得到相同的错误:

致命错误LNK1112:模块机器类型“X86”与目标机器类型“x64”冲突

请提出建议,如何建立64位静态库

最佳答案

对于它的值(value),我遇到了这个完全相同的问题。

我有一个可编译静态库的项目,而创建“x64”配置并没有使其实际针对x64。正如您所做的那样,我必须在项目属性页的“库管理器->命令行”下显式添加“/MACHINE:X64”作为“附加选项”。

我希望Visual Studio像动态库(在“链接器->高级->目标计算机”下)一样,在属性页中将此设置作为一流属性公开。也许我缺少了一些东西。

关于使用VS2008为64位Windows平台编译C++静态库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1393704/

10-13 08:29