Szy*_*zek 1 c gcc makefile cmake
我有一个 C 项目,它使用 CMake 为每种库类型(静态、动态和共享)构建三个目标:
add_library(contact-static STATIC EXCLUDE_FROM_ALL lib/contact.c)
add_library(contact-shared SHARED EXCLUDE_FROM_ALL lib/contact.c)
add_executable(contactbook src/main.c)
target_link_libraries(contactbook contact-static)
add_executable(contactbook-static EXCLUDE_FROM_ALL src/main.c)
target_link_libraries(contactbook-static contact-static)
add_dependencies(contactbook-static contact-static)
add_executable(contactbook-shared EXCLUDE_FROM_ALL src/main.c)
add_dependencies(contactbook-shared contact-shared)
target_link_libraries(contactbook-shared contact-shared)
add_executable(contactbook-dynamic EXCLUDE_FROM_ALL src/main.c)
target_link_libraries(contactbook-dynamic contact-shared)
target_compile_definitions(contactbook-dynamic PRIVATE DYNLIB=true)
target_compile_options(contactbook-dynamic PRIVATE -rdynamic)
target_link_libraries(contactbook-dynamic dl)
Run Code Online (Sandbox Code Playgroud)
问题是我必须提供传递给make命令的优化级别。
我已经尝试过(但我都陷入困境):
make -Dopt:STRING=0但我不知道如何使用它作为编译器标志add_custom_target目标添加定义那么我该如何做到这一点以及将优化级别传递给 cmake 目标的最佳实践是什么?
在命令行上运行 cmake 时,您可以更改任何 cmake 变量,如下所示:
cmake -DCMAKE_CXX_FLAGS="-Os" .
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6705 次 |
| 最近记录: |