我正在尝试在 Linux (Ubuntu) 操作系统下使用 CLion 编译我的程序。
我的 CMake 文件:
# cmake_minimum_required(VERSION 3.5)
project(untitled2 C)
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_FLAGS -pthread)
add_executable(untitled2 main.c)
Run Code Online (Sandbox Code Playgroud)
我的程序使用线程,所以我添加 set(CMAKE_CXX_FLAGS -pthread)了编译程序所需的内容。我收到一个编译错误:“对 pthread_create 的未定义引用”
我可以使用以下命令通过终端编译程序:
gcc main.c -o main -pthread
Run Code Online (Sandbox Code Playgroud)
我认为我的问题与 CMake 文件有关。有人可以帮我解决这个问题吗?
谢谢!
find_package(Threads REQUIRED)
我可能仍然不是最好的选择,但结合使用调用
target_link_libraries(mytarget PRIVATE Threads::Threads)
是实现目标的更现代的方法,因为您应该对目标执行操作(而不是使用可能影响目标其他部分的“魔法”变量)项目甚至包含拼写问题)。
请参阅: https: //codingnest.com/basic-cmake-part-2/