I'm compiling a C++ program and have been getting the following error message:
undefined reference to 'pthread_mutexattr_init' undefined reference to 'dlopen' undefined reference to 'dlerror' undefined reference to 'dlsym' undefined reference to 'dlclose' To resolve the error for pthread I added the following linker flag to my CMakeLists.txt.
if (UNIX) set(CMAKE_CXX_FLAGS "-pthread") endif (UNIX) This resolved the pthread error. To resolve the libdl error I went ahead and modified it to the following.
if (UNIX) set(CMAKE_CXX_FLAGS "-pthread -dl") endif (UNIX) This gave me a warning
unrecognized gcc debugging option: l I modified it to the following
if (UNIX) set(CMAKE_CXX_FLAGS "-pthread") set(CMAKE_CXX_FLAGS "-dl") endif (UNIX) And got back all the error messages together with
unrecognized gcc debugging option: l. Do I miss how to set linker flags in CMake? What exactly am I doing wrong? I'm on Ubuntu 17.04 x64.
target_link_libraries(yourtarget pthread dl)?