Есть код на C, 1 файл main, который импортирует либу. Также есть либа, в которой 4 файла:
declaration.h, declaration.cc, lib.h, lib.cc
declaration.h, declaration.cc играют роль "прослойки", внутри declaration.h только описания методов, внутри 'extern C'.
Есть простой cmake:
set(CMAKE_EXE_LINKER_FLAGS "-lrt")
SET (SOURCES
./main.c
)
INCLUDE_DIRECTORIES (
/lib/ # тут путь до declaration.h
)
ADD_EXECUTABLE (test ${SOURCES})
TARGET_LINK_LIBRARIES (test lib)
Как только используется хоть 1 метод из либы, при сборки cmake-ом во время линковки вываливается куча ошибок формата undefined reference to std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&).
Как в данном случае подключить c++ библиотеку к коду на c?
минимальной программы- мне самому интересно, а что конкретно Вы предлагаете здесь воспроизводить? Допустим, я не понимаю, что такое линкер, как он работает и зачем нужен - у меня вылетает такая ошибка, и что непосредственно в программе я должен иследовать? – isnullxbh Jul 01 '20 at 11:56