有一个工程,以静态的方式调用另一个名为Public的DLL ,两者都使用WIN32编译的话没有任何问题。使用x64编译时,DLL编译能正常通过,但编译EXE时出现Public.lib(Public.dll) : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'。
百度了一下,看到有人说要把“Linker”->“Advanced”->“Target Machine”设置为MachineX64 (/MACHINE:X64),但是我的工程属性中本来就是这样设置的,求高手!
谢谢~
5 个解决方案
#1
编译环境为64位Windows7+VS2010,但网上有人用VS2008也出现过类似的问题。
还有MSDN上的一个帖子: http://social.msdn.microsoft.com/Forums/zh-CN/vcgeneral/thread/e2c0710c-d5f4-43d1-9716-2724b9a0924e
求解!
还有MSDN上的一个帖子: http://social.msdn.microsoft.com/Forums/zh-CN/vcgeneral/thread/e2c0710c-d5f4-43d1-9716-2724b9a0924e
求解!
#2
注意,你引入的Lib库也要是64位的,你用的应该是X86的Lib
在VC 目录里面设置Lib路径
在VC 目录里面设置Lib路径
#3
LInk的Lib文件也要是64bit版本...
#4
问题找到了,果然是include 了32位的Lib,因为我的32位和64位目标Lib的名称是一样的,所以需要将64位的Lib指向另一个目录。
#5
谢谢大家!
#1
编译环境为64位Windows7+VS2010,但网上有人用VS2008也出现过类似的问题。
还有MSDN上的一个帖子: http://social.msdn.microsoft.com/Forums/zh-CN/vcgeneral/thread/e2c0710c-d5f4-43d1-9716-2724b9a0924e
求解!
还有MSDN上的一个帖子: http://social.msdn.microsoft.com/Forums/zh-CN/vcgeneral/thread/e2c0710c-d5f4-43d1-9716-2724b9a0924e
求解!
#2
注意,你引入的Lib库也要是64位的,你用的应该是X86的Lib
在VC 目录里面设置Lib路径
在VC 目录里面设置Lib路径
#3
LInk的Lib文件也要是64bit版本...
#4
问题找到了,果然是include 了32位的Lib,因为我的32位和64位目标Lib的名称是一样的,所以需要将64位的Lib指向另一个目录。
#5
谢谢大家!