Я пытаюсь переключиться в среду Windows из Linux, но считаю это очень трудным путем.Компиляция boost :: asio example на Windows
На этот раз я хотел проверить, могу ли я работать с библиотекой boost.
У меня были проблемы с компиляцией boost на windows, поэтому я загрузил предварительно скомпилированную версию. Я распаковал все и положительно оценил, что я могу скомпилировать библиотекари только для заголовков.
Затем я скопировал несколько простых примеров 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-мт-1_62.lib
- libboost_system-vc140-мт-Г.Д.-1_62.lib
- libboost_system-vc140-т-ы-1_62.lib
- libboost_system -vc140-т-синг-1_62.lib
- libboost_system-vc140-втор-1_62.lib
- libboost_system-vc140-синг-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
Что я здесь делаю неправильно? Пожалуйста, помогите ... YotKay
"-LC: \\ выглядит странно, -L" C: \\? – willll
Я думаю, что нашел решение здесь: http://boost.org/more/getting_started/windows.html – YotKay
Дело в том, что предварительно скомпилированные двоичные файлы были скомпилированы с помощью Visual Studio, и они НЕ СОВМЕСТИМЫ с G ++. Дерьмо! – YotKay