2014-02-04 2 views
2

В настоящее время я пытаюсь скомпилировать библиотеку с CMake и MinGW32-make. я получить на ошибки начинающих следующее:Проблема с Cmake с определениями

г ++ ехе.: Ошибка:/D: Нет такого файла или каталога г ++ ехе:. Об ошибке: WIN32: Нет такого файла или каталога ... (и те же ошибки с другими значения)

Почему CMake pass/D WIN32 в MinGW вместо -DWIN32? Например: g ++. Exe (..)/D WIN32/D BLABLA (..)

Спасибо.

+0

проверить свои флагов компиляции; g ++ только делает то, что вы говорите, чтобы ... – Pandrei

+1

Можете ли вы показать (соответствующую часть) вашего CMakeList? – Angew

+1

Используйте -D вместо/D для Visual Studio и gcc. Он будет работать для обоих. – drescherjm

ответ

2

В CMake, если вы хотите определить макрос препроцессора, который можно использовать в Visual Studio и других компиляторах, лучше всего использовать -D вместо/D в ваших add_definitions() или различных переменных компилятора CMake. Например:

add_definitions(-DMYDEFINE) 

Я всегда это делаю, хотя большинство моих сборников находятся под некоторой версией Visual Studio.

Смежные вопросы