【发布时间】:2018-12-15 17:46:22
【问题描述】:
我正在尝试在 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)
我的程序使用线程,所以 我已经添加了 set(CMAKE_CXX_FLAGS -pthread),这是编译我的程序所必需的。
我收到一个编译错误:“未定义对 pthread_create 的引用”
我可以使用以下命令通过终端编译程序:
gcc main.c -o main -pthread
我认为我的问题在于 CMake 文件。 有人可以帮我解决这个问题吗?
谢谢!
【问题讨论】:
-
您还需要将
-pthread传递给链接器(或使用-lpthread显式链接)。您可能还想了解the CMakeFindThreadsfunciton(虽然目前处于离线状态,但根据他们的页面很快就会回来)。 -
哦,顺便说一句,
CXX任何东西都适用于 C++,而不是 C。 -
感谢您的回复。我把CXX改成C,编译成功!
-
如何设置要使用的 C 标准(即使它是由 CLion 自动添加的)?
CMakeLists.txt中有一个关于语言和相关变量的非常简单的模式。 -
cmake and libpthread的可能重复