对`pthread_create'CLion的未定义引用

时间:2018-12-15 17:46:22

标签: linux cmake clion

我正在尝试在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文件有关。 有人可以帮我解决这个问题吗?

谢谢!

2 个答案:

答案 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)
是达到目标的更现代的方法,因为您应该对目标执行操作(而不是使用可能影响项目其他部分甚至包含拼写问题的“魔术”变量)。

请参阅:https://codingnest.com/basic-cmake-part-2/