我应该使用哪些编译选项来使用cl.exe与Boost链接
Which compilation options should I use to link with Boost using cl.exe?
我有一个程序,我想在命令行上使用cl.exe
编译。这个程序依赖于一些我没有链接到的boost库。
得到的错误是:
cl /Fosamplesproxyproxy.obj /c samplesproxyproxy.cpp /TP /O2 /EHsc
/DBOOST_ALL_NO_LIB /DBOOST_THREAD_USE_LIB /DBOOST_SYSTEM_USE_LIB
/DBOOST_USE_WINDOWS_H /DTAP_ID="tap0901" /D_WIN32_WINNT=0x0501 /MD /nologo
/Isamplesproxy /Iinclude proxy.cpp
link /nologo /MD /OUT:samplesproxyproxy.exe /LIBPATH:samplesproxy
/LIBPATH:lib asiotap.lib libboost_system-vc100-mt-1_47.lib
libboost_thread-vc100-mt-1_47.lib ws2_32.lib gdi32.lib iphlpapi.lib
advapi32.lib samplesproxyproxy.obj
LINK : warning LNK4044: unrecognized option '/MD'; ignored
asiotap.lib(bootp_builder.obj) : error LNK2001: unresolved external
symbol "class boost::system::error_category const & __cdecl
boost::system::system_category(void)"
(?system_category@system@boost@@YAAEBVerror_category@12@XZ)
我在x64 MSVC命令提示符下使用以下命令行编译Boost:
.b2.exe install toolset=msvc --prefix=C:Boost-VC-x64
如果我看libboost_system-vc100-mt-1_47.lib
里面,我可以看到:
?system_category@system@boost@@YAABVerror_category@12@XZ
是出口。但是如果你仔细看,它和我的编译错误有一点不同:
?system_category@system@boost@@YAAEBVerror_category@12@XZ // The symbol I miss
?system_category@system@boost@@YAABVerror_category@12@XZ // The exported symbol
我想我应该改变Boost或我的编译选项,但无法确定要改变什么。有线索吗?
经过一番调查,我意识到我是为x86平台编译Boost的,而我正在链接x64二进制文件。
我认为在Visual Studio x64命令提示符中编译Boost就足够了,但实际上你必须指定:
.b2.exe install toolset=msvc address-model=64 --prefix=C:Boost-VC-x64
相关文章:
- Visual Studio mkl_link_tool.exe链接错误
- 如何链接 DLL 以供 LoadLibrary() 使用(在 Windows 上的 C++ 中)并从调用 exe 导入变
- 重建 exe 时如何自动链接新的静态库而不更改源文件?
- 在动态链接中,.exe如何知道在更新库时在哪里搜索库?
- 是否有 gcc 命令可以链接同一目录中的所有 .o 文件并生成.exe文件
- Vscode C++调试使用 cl.exe 和 / 链接构建的代码.exe - 调试器不附加
- 如何修复链接器错误"mingw32/bin/ld.exe: cannot find -lSDL"?
- 在 Win 7 SP 中创建 exe vcxproj:过程入口点<function>无法位于动态链接库中KERNAL32.dll
- 使用签证编译 dll / exe - 链接失败
- Exe 在库更改时执行完全链接,尽管存在增量链接
- 配置 Qt .pro 文件以使用 cl.exe 和 link.exe 来修复链接错误
- Visual Studio 中引用的 exe 项目上的链接器错误
- 将静态库与另一个静态库链接,并在exe中使用主库
- 链接 Visual C++ 项目 (VS 2010) 会导致错误MSB6006:"link.exe"退出代码1073741515
- 使用mingw链接静态库(a)到exe
- 我应该使用哪些编译选项来使用cl.exe与Boost链接
- 链接器诊断:"exe not found or not built by the last incremental link; performing full link",为什么?
- C++ 一个解决方案两个项目(EXE & DLL)链接错误
- 懒惰的程序员将vbscript/hta文件包装在一个独立的静态链接的c++ exe中
- g++.exe[警告]链接器输入文件未使用,因为链接未完成