对“pthread_create”CLion 的未定义引用

Ido*_*gal 6 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)
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 文件有关。有人可以帮我解决这个问题吗?

谢谢!

cod*_*ing 7


find_package(Threads REQUIRED)
我可能仍然不是最好的选择,但结合使用调用
target_link_libraries(mytarget PRIVATE Threads::Threads)
是实现目标的更现代的方法,因为您应该对目标执行操作(而不是使用可能影响目标其他部分的“魔法”变量)项目甚至包含拼写问题)。

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


gia*_*ele 6

你必须改变 set(CMAKE_CXX_FLAGS -pthread)set(CMAKE_C_FLAGS -pthread),因为CXX费的C ++。希望这会帮助你。