c++ - 将 Linux Debian gcc 命令转换为 CMakeLists.txt

标签 c++ c cmake

我希望这个问题不是太微不足道,但我正在尝试将 gcc 命令转换为 CMakeLists.txt。不幸的是我无法理解基础知识,我希望你能帮助我。 我想要这样做的主要原因是我正在 Raspberry 上构建整个系统,并且它存在很多性能问题。所以 build 整个工程需要 90 分钟。使用 cmake,我希望在进行更改时构建过程能够更快地完成。这在理论上应该是可能的。

这是我的 gcc 命令

gcc -std=c99 -flto=1 -I$HOME/install/include -L$HOME/install/lib main.c MotorSteuerung.c 
    -lopen62541 -lmbedtls -lmbedx509 -lmbedcrypto -o MotorSteuerung

我已经开始使用 cmake 文件,但不幸的是我不太明白我必须做什么。特别是 -flto=1 ,它将并行标志限制为 1 (否则它不能在树莓派上构建)经过长时间的搜索后引导我来到这里。但我也不太明白如何实际集成这些库......

cmake_minimum_required(VERSION 3.20)

# set the project name
project(MotorSteuerung)

# Set the output folder where your program will be created
set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})

# The following folder will be included
include_directories("${PROJECT_SOURCE_DIR}")

# add the executable
add_executable(Tutorial open62541::open62541)

感谢您的帮助

最佳答案

您可以使用SET()来设置编译器标志。检查CMake documentation

您可以将CMAKE_CXX_FLAGS设置为要传递给编译器的标志

关于c++ - 将 Linux Debian gcc 命令转换为 CMakeLists.txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66534771/

相关文章:

c++ - boost::condition_variable - 将 wait_for 与谓词一起使用

c - 填充时的奇怪行为在 C 中动态分配二维字符数组

c++ - 错误:在mingw64上构建cmake + boost项目时, 'GetSystemTimeAsFileTime'的类型冲突

CMake-配置 : Permission Denied

cmake - 在cmake中检查 `execute_process`的退出状态

NAO Robot 上的 C++ - 如何运行我的 C++ 代码?

c++ - 如何向基类注册派生类成员函数指针

c++ - 结构标记和名称,为什么声明为名称的局部变量会编译?

c - for (;;) 的用途是什么?

C 指针和函数