去除CMAKE生成的编译器-c选项
时间: 2024-03-27 20:37:20 浏览: 18
您可以使用以下方式在 CMakeLists.txt 文件中去除编译器选项中的 -c:
```
string(REPLACE "-c" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
```
这个命令会将 CMAKE_CXX_FLAGS 变量中的 -c 字符串替换为空字符串,从而去除 -c 选项。请注意,这样做会去除所有 -c 选项,包括您手动添加的和 CMake 自动生成的。如果您只想去除 CMake 自动生成的 -c 选项,可以考虑使用 add_compile_options 命令来添加自己的编译选项,从而覆盖 CMake 自动生成的选项。例如:
```
add_compile_options(-O0)
```
这样就会覆盖 CMake 自动生成的编译选项,只使用 -O0 选项进行编译。
相关问题
去除CMAKE生成的编译器-c选项指定的.C
如果您想从 CMake 生成的编译器选项中去除特定的源文件后缀(例如 .C),可以使用以下方式:
```
string(REPLACE "-c" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
string(REPLACE ".C" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
```
这个命令会先将 CMAKE_CXX_FLAGS 变量中的 -c 字符串替换为空字符串,然后再将 .C 字符串替换为空字符串,从而去除 -c 和 .C 选项。请注意,这样做会去除所有 -c 和 .C 选项,包括您手动添加的和 CMake 自动生成的。如果您只想去除 CMake 自动生成的 .C 选项,可以考虑使用 add_compile_options 命令来添加自己的编译选项,从而覆盖 CMake 自动生成的选项。例如:
```
add_compile_options(-O0)
```
这样就会覆盖 CMake 自动生成的编译选项,只使用 -O0 选项进行编译。
cmake编译选项--print-memry-usage的使用
CMake的`--print-memory-usage`选项可以输出CMake在运行时占用的内存,用于定位CMake运行速度较慢的问题。使用该选项需要在CMake命令行中添加`--print-memory-usage`参数,例如:
```
cmake --print-memory-usage <path-to-source>
```
其中`<path-to-source>`为CMakeLists.txt所在的路径。
执行该命令后,CMake会在输出中显示内存使用情况,如下所示:
```
Memory used: 0.00 MB
Maximum resident set size (kbytes): 7480
```
其中`Memory used`表示CMake运行期间实际使用的内存大小,`Maximum resident set size`表示CMake运行期间所占用的最大物理内存大小(单位为kbytes)。
通过观察`Maximum resident set size`可以判断CMake运行速度较慢的原因,例如CMake在处理大型项目时,可能会因为内存占用过大而导致运行速度变慢。