Использование boost в среде программирования консоли с компилятором mingw g ++ - PullRequest
1 голос
/ 18 июня 2020

Я установил boost, следуя инструкциям здесь: https://phylogeny.uconn.edu/tutorial-v2/part-1-ide-project-v2/setting-up-the-boost-c-library-v2/#

работает в Visual Studio, но не работает при компиляции с использованием mingw g ++ в windows cmd.

Editor - это vim.

исходный код выглядит примерно так:

#include <boost/algorithm/string.hpp>
...

компилируется следующим образом:

> g++ -o test test.cpp
test.cpp:7:10: fatal error: boost/algorithm/string.hpp: No such file or directory
 #include <boost/algorithm/string.hpp>

Как сделать мой mingw g ++ доступным для ускорения?

1 Ответ

0 голосов
/ 18 июня 2020

Вы использовали конфигурацию со страницы:

import option ; 
using msvc ; 
option.set keep-going : false ; 
libraries = --with-program_options --with-regex --with-filesystem --with-system ;

using msvc, вероятно, вам что-то скажет. Он использует набор инструментов MSV C. Поскольку они несовместимы (разные библиотеки времени выполнения C ++, для начала, вероятно, другой ABI), вы не можете ссылаться на эти библиотеки.

Только заголовок

Если, как в коде, который вы показали, вам нужны только заголовки, тогда это не проблема, просто добавьте путь включения к вашим флагам компилятора, как вам также сказано в руководстве: enter image description here

Так что либо введите параметры командной строки напрямую :

g++ -I C:\boost_1_65_0

Или добавление к переменной в ваших сценариях сборки, например Makefile:

CPPFLAGS+=-I C:\boost_1_65_0

Или CMake:

INCLUDE_DIRECTORIES(C:\boost_1_65_0)

Со связью

Чтобы использовать предварительно созданные разделяемые библиотеки, вам необходимо собрать разные версии для mingw. См., Например, эти шаги: https://gist.github.com/zrsmithson/0b72e0cb58d0cb946fc48b5c88511da8

Я установил с той прошлой недели ( context ), и он работал нормально. (Я также отказался от IDE с Vim, хотя VsCode тоже был в порядке)

Убедитесь, что он использует набор инструментов mingw (например, mgw81), что также означает, что mgw81 должен быть частью имен файлов библиотеки. Следование только этому руководству уже дает вам это, но ваши ранее существующие конфигурации могут мешать, если вы не будете осторожны.

...