'undefined reference to `pthread_create' CLion
I'm trying to compile my program using CLion under Linux (Ubuntu) OS.
My CMake file:
# cmake_minimum_required(VERSION 3.5)
project(untitled2 C)
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_FLAGS -pthread)
add_executable(untitled2 main.c)
My pragram using threads so I've added set(CMAKE_CXX_FLAGS -pthread) that required to compile my program.
I got a compilation error: "undefined reference to pthread_create"
I can compile the program via the terminal using the following:
gcc main.c -o main -pthread
I think that my issue is with the CMake file. Can someone please help my with that matter ?
Thank you!
Solution 1:[1]
I might still not be the best option but using a call tofind_package(Threads REQUIRED)
in combination withtarget_link_libraries(mytarget PRIVATE Threads::Threads)
is the more modern way of getting to your goal because you should perform your actions on a target (instead of using 'magic' variables that could influence other parts of the project or even contain spelling issues).
Solution 2:[2]
You have to change set(CMAKE_CXX_FLAGS -pthread) in set(CMAKE_C_FLAGS -pthread), because CXX stay for C++. Hope this will help you.
Solution 3:[3]
Adding this to CMakeLists works fine for me:
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(myprog Threads::Threads )
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | gianluca gabriele |
| Solution 3 | Anass Maourid |
