【问题标题】:Add c++ compiler flags using CMake使用 CMake 添加 c++ 编译器标志
【发布时间】:2020-05-05 16:09:55
【问题描述】:

我对整个 CMake 逻辑和语法很陌生。对于我正在处理的代码,我需要使用 cap_set_proc 函数来处理进程功能标志 (man link)。所以我决定从你在这里看到的一段非常愚蠢的代码开始:

#include<iostream>
#include<string>
#include<sys/capability.h>

using namespace std;

int main(){

    cap_t test = cap_get_proc();
    string whatsTest(cap_to_text(test,nullptr));
    cout<<whatsTest<<endl;

    return 0;

}

(目前,我不在乎我写的代码是否有意义......)
现在,如果我简单地使用c++(如下所示),一切都可以正常编译,并且可执行文件可以毫无问题地运行:

c++ test_main.cpp -o test_cap -lcap

问题是我正在处理的项目非常庞大,并且非常依赖 CMake。所以我想编译相同的代码,但使用 CMake... 如何编写 CMakeLists.txt 文件,让我获得与前几行中显示的编译器指令相同的结果?

【问题讨论】:

    标签: c++ cmake


    【解决方案1】:

    您只需要以下内容:

    cmake_minimum_required(VERSION 3.17)
    
    project(TestCapProject)
    
    # Add your executable target.
    add_executable(test_cap test_main.cpp)
    
    # Link the libcap library to your executable.
    target_link_libraries(test_cap PRIVATE cap)
    

    如果您要将其添加到现有 CMake 项目中,您可能只需要最后两行或三行,具体取决于您的项目层次结构。

    我建议通读 CMake guide,了解一些基本的 CMake 命令。

    您需要的两个主要命令的文档在这里:

    【讨论】:

    • 它工作得很好。感谢您的帮助以及理论提示。
    猜你喜欢
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 2019-03-11
    • 2019-02-02
    相关资源
    最近更新 更多