我正在尝试在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)
我的pragram使用线程,因此 我添加了 set(CMAKE_CXX_FLAGS -pthread)
,这需要编译我的程序。
我收到一个编译错误:“未定义对pthread_create的引用”
我可以使用以下命令通过终端编译程序:
gcc main.c -o main -pthread
我认为我的问题与CMake文件有关。 有人可以帮我解决这个问题吗?
谢谢!
答案 0 :(得分:1)
您必须在set(CMAKE_CXX_FLAGS -pthread)
中更改set(CMAKE_C_FLAGS -pthread)
,因为 CXX 适用于C ++。希望这会帮助你。
答案 1 :(得分:0)
我可能仍然不是最好的选择,但使用了
find_package(Threads REQUIRED)
与
结合
target_link_libraries(mytarget PRIVATE Threads::Threads)
是达到目标的更现代的方法,因为您应该对目标执行操作(而不是使用可能影响项目其他部分甚至包含拼写问题的“魔术”变量)。