我有這樣一個項目:如何使用不同的編譯選項爲CMAKE中的不同文件編譯?
|--CMakeLists.txt(1)
|--File1.cpp -W -W-all
|--Folder1
|--CMakeLists.txt(2)
|--File2.cpp -W -W-all -fno-rtti
正如你可以在上面看到,File2.cpp
需要與-fno-rtti
編譯,而其他文件應與rtti
編譯。這是因爲我在我的項目中使用了clang和boost庫。 我寫了CMakeLists.txt(1)
這樣的:
SET (CMAKE_CXX_FLAGS "-std=c++11 -fexceptions -fno-rtti -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -Wno-long-long")
而且,在CMakeLists.txt(2)
我增加了以下內容:
add_definitions(-fno-rtti)
以上沒有工作。事實上沒有以下的都在的CMakeLists.txt爲我工作(2)
set_property(SOURCE File2.cpp APPEND_STRING PROPERTY CMAKE_CXX_FLAGS " -fno-rtti ")
set_property(SOURCE File2.cpp APPEND_STRING PROPERTY COMPILE_FLAGS " -fno-rtti ")
ADD_DEFINITIONS(CMAKE_CXX_FLAGS " -fno-rtti ")
ADD_DEFINITIONS(COMPILE_FLAGS " -fno-rtti ")
ADD_DEFINITIONS(-fno-rtti)
我錯過了什麼?
你怎麼知道它沒不工作?你會得到什麼錯誤?你有沒有試過[這](https://stackoverflow.com/questions/2670121/using-cmake-with-gnu-make-how-can-i-see-the-exact-commands)? – Florian