我试图从Linux切换到Windows环境,但发现它非常困难。在Windows上编译boost :: asio示例
这次我想测试是否可以使用boost库。
我在编译Windows上的boost时遇到了问题,所以我下载了预编译版本。我将所有内容解压缩并积极测试,以便编译仅包含头文件的映像。
然后我复制了一些简单的boost :: asio示例。我在Eclipse中设置了一切。编译进行得很好,但在链接期间,我将'未定义的引用'问题与'boost :: system'内部的东西相关联。
C:/Users/jacek/cpp/boost_1_62_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'
C:/Users/jacek/cpp/boost_1_62_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'
C:/Users/jacek/cpp/boost_1_62_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'
因此,我在链接选项中添加了'-lboost_system'以及库目录的路径。但是这没有帮助。
g++ "-LC:\\Users\\jacek\\cpp\\boost_1_62_0\\lib64-msvc-14.0" -o TestAsio.exe "src\\Main.o" -lboost_system
我检查了图书馆目录,发现有一串包含名为“boost_system”文件。它们是:
- libboost_system-vc140-MT-1_62.lib
- libboost_system-vc140-MT-GD-1_62.lib
- libboost_system-vc140-MT-S-1_62.lib
- libboost_system -vc140-MT-SGD-1_62.lib
- libboost_system-vc140-S-1_62.lib
- libboost_system-vc140-SGD-1_62.lib
我不知道该用哪个。我尝试添加'libboost_system-vc140-mt-1_62'到链接选项,我尝试了所有其他文件,我尝试将文件重命名为linux模式'libboost_system.a',但没有任何工作。
g++ "-LC:\\Users\\jacek\\cpp\\boost_1_62_0\\lib64-msvc-14.0" -o TestAsio.exe "src\\Main.o" -llibboost_system-vc140-mt-1_62 -llibboost_system-vc140-mt-gd-1_62 -llibboost_system-vc140-mt-s-1_62 -llibboost_system-vc140-mt-sgd-1_62 -llibboost_system-vc140-s-1_62 -llibboost_system-vc140-sgd-1_62
我在这里做错了什么? boost asio example compilation error
它看起来像升压的预编译的版本是用Visual Studion创建和不兼容G ++: 请帮助... YotKay
“-LC:\\看起来很奇怪,-L”C:\\? – willll
我想我在这里找到了一个解决方案:http://boost.org/more/getting_started/windows.html – YotKay
问题是预编译的二进制文件是用Visual Studio编译的,它们与G ++不兼容。拉屎! – YotKay