BOOST_ROOT не соблюдается на этапе соединения после настройки cmake

Поскольку мой комментарий действительно предоставил ответ, я отправлю его.

Как насчет того, чтобы скрыть косую черту в другую косую черту, подобную //. Это работает для меня, когда я выполняю эту команду, где я избежал параметра /r: start C:/folder/beep 2000 250 100 //r 3

Источник: http://oldwiki.mingw.org/index.php/switches%20with % 20forward% 20slashes

Minimalist GNU для Windows

Передача переключателей с косой чертой в MSYS

В MSYS аргумент командной строки «/ c» интерпретируется как диск C: поэтому, чтобы передать любой аргумент, начинающийся с косой черты, вам нужно использовать две косые черты. Например, чтобы использовать эту команду в MSYS:

cmd /c echo foo

Использование:

cmd //c echo foo

Если вам нужно есть стиль окна пути в сценарии оболочки, вы можете сделать

x=$(cd /unix/path && cmd //c cd)

Теперь x var содержит эквивалентный путь к / unix / path

blockquote>

1
задан Robert Sawko 16 January 2019 в 10:30
поделиться

2 ответа

После захода в список рассылки cmake-developer и, наконец, оставив сообщение о проблемах cmake gitlab , я понял, что проблема была не столько в моей версии cmake, сколько в моей cmake_minimum_required, которую я унаследовал от старый проект.

Я устанавливал:

cmake_minium_required(VERSION 2.8)

После обновления до 3.12, я получил правильное поведение:

/path/to/g++ -rdynamic CMakeFiles/test.dir/test.cpp.o -o test -lboost_program_options-mt

Чтение cmake_minimum_required документов, которые я понял " команда неявно вызывает "cmake_policy. Я думаю, что последний не очень хорошо играл с FindBoost из моего 3.12 `cmake.

Я не уверен, полезен ли этот пост для SO, но я определенно усвоил здесь урок по cmake.

0
ответ дан Robert Sawko 16 January 2019 в 10:30
поделиться

Я не знаю, какую версию CMake вы используете, но вы пытались использовать Boost импортированную цель вместо устаревшей переменной CMake:

т.е. заменить: target_link_libraries(test LINK_PUBLIC ${Boost_PROGRAM_OPTIONS_LIBRARY}) на target_link_libraries(test LINK_PUBLIC Boost::program_options)

0
ответ дан Erk 16 January 2019 в 10:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: