LINUX.ORG.RU

Ошибка линковки при использовании CMAKE

 , ,


0

1

Всем доброго дня! Проблема следующая :

g++ main.cpp -lpthread 

Все ок, затем выполняю то же самое через CMAKE в clion как для debug так и release - возвращает следующее:

libpthread.so.0: undefined reference to `__libc_vfork@GLIBC_PRIVATE'
libpthread.so.0: undefined reference to `__default_sa_restorer@GLIBC_PRIVATE'
libpthread.so.0: undefined reference to `__default_rt_sa_restorer@GLIBC_PRIVATE'
collect2: error: ld returned 1 exit status

вот что в CMakeLists.txt :

cmake_minimum_required(VERSION 3.8)
project(prog)

add_executable(prog main.cpp)

add_library(pthread SHARED IMPORTED)
set_target_properties(pthread PROPERTIES IMPORTED_LOCATION /usr/lib/libpthread.so)
target_link_libraries(prog
      LINK_PUBLIC pthread
)


Последнее исправление: noweapon (всего исправлений: 2)

На SO за такое подробное описание проблемы вопрос сносят. Никто не знает, что у вас творится в CMake. Напишите письмо с вопросом на битву экстрасенсов, там точно помогут.

u-235
()

Во-первых, чтобы линковаться с тредами в CMake есть стандартный модуль FindTreads.

find_package(Threads REQUIRED)
target_link_libraries(foo Threads::Threads)

Во-вторых, надо постить полный лог с вызываемыми командами и всем их выводом.

slovazap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.