Я использую Ubuntu, и я хочу использовать funopen()
, но эта функция используется только в системе BSD. Так что я установить libbsdКак связать <bsd/stdio.h> в cmake для использования funopen()
sudo apt-get install libbsd-dev
после этого, я могу включить и я вижу funopen()
в этом файле заголовка. Но не может компилироваться. я стараюсь использовать это в CMakeLists.txt, но никакая польза:
find_package(bsd)
Я не думаю, что пары не bsd
, как я могу это сделать?
[ОБНОВЛЕНО] сделать как @Alu предложение, по-прежнему не работает:
cmake_minimum_required(VERSION 3.3)
project(myProject)
set(SOURCE_FILES main.c)
set(DIR_TO_LIB_HEADERS, /usr/include/bsd)
set(DIR_TO_BSD_LIB_FILE, /usr/lib/x86_64-linux-gnu/libbsd.so)
include_directories(${DIR_TO_LIB_HEADERS})
add_executable(myProject ${SOURCE_FILES})
target_link_libraries(myProject ${DIR_TO_BSD_LIB_FILE})
с ошибкой:
undefined reference to `funopen'
ошибка говорит, что ваш компилятор не находит определение метода. Таким образом, либо файл заголовка не определяет метод, либо ссылается на неправильный заголовок. Попробуйте включить 'bsd/stdio.h' – Alu