我试图使用带有add_compile_options的以下编译选项的cmake: add_compile_options(-pipe -O2 -std=c++98 -W -Wall -pedantic)
但是它似乎并没有在编译过程中实际使用。
make -n | grep pedantic 不返回任何东西
仅供参考,我的cmake命令及其返回内容:
cmake -G"Unix Makefiles" -DARCH:STRING=x86 -Bosef -H. -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++
-- The C compiler identification is GNU 4.8.3
-- The CXX compiler identification is GNU 4.8.3
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++
-- Check for working CXX compiler: /usr/bin/g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- cmake run for linux x86
-- Configuring done
-- Generating done
-- Build files have been written to: /home/davidlevy/WS/LC4/main/osef
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能实际应用这些选项?
PS:我注意到它们未应用,因为make不会输出单个警告
编辑:如果相反我使用
set (
CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} "
"${CMAKE_CXX_FLAGS} -pipe -O2 -std=c++98 -W -Wall -pedantic"
)
Run Code Online (Sandbox Code Playgroud)
制作确实/usr/bin/g++ ; -pipe -O2 -std=c++98 -W -Wall -pedantic -I ENDOFTHECOMMAND我不知道这是否; 来自
add_compile_options()确实附加到COMPILE_OPTIONS目录属性,并作为命令后的COMPILE_OPTIONS目标的所有属性的默认属性。add_compile_options()
CMAKE_CXX_FLAGS适用于当前所有目标的区别CMakeLists.txt。
因此,请确保add_compile_options()命令位于相关的/ 之前。add_library()add_executable
从add_compile_options()文档:
将当前目录中及以下目标的选项添加到编译器命令行中,这些选项在调用此命令后添加。
参考文献
| 归档时间: |
|
| 查看次数: |
1856 次 |
| 最近记录: |