поиск в пакетах с помощью cmake find_package - PullRequest
2 голосов
/ 23 мая 2011
GCC 4.6.0
Linux
cmake 2.8

Я использую cmake для создания файла make.Тем не менее, в моем файле network_imp.c мне нужно сделать несколько потоков.Итак, я включил заголовочный файл #include <pthread.h> и использую функцию pthread_create()

Как я могу сказать cmake использовать этот заголовок pthread.h и совместно используемую библиотеку -lpthread?

Iдумал об использовании find_package, но я не думаю, что я использую его правильно.Это мой файл CMakeLists.txt.

find_package(pthread)

add_library(network SHARED network_imp.c)

Ошибка, которую я получаю при попытке сделать, такова:

undefined reference to pthread_create

Большое спасибо за любые предложения,

1 Ответ

3 голосов
/ 23 мая 2011

Как правило, вы должны использовать команду target_link_libraries cmake, чтобы связать ваши исполняемые файлы с другими библиотеками. Команда find_package используется для установки специальных переменных cmake, содержащих, например, собственно библиотеки, для связи с которыми.

А для работы с pthread следует использовать find_package(Threads).

И здесь - это ответ на ваш конкретный вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...