Привет, я пытаюсь использовать простую общую библиотеку, которую я создал с файлом, который содержит только основную. (я первый запустить cmake .
, который работал хорошо и вратаря возвращать ошибки)Использование cmake с общей (динамической) библиотекой
Ошибка файл
$ make
Scanning dependencies of target myprog
[ 50%] Building C object CMakeFiles/myprog.dir/main.c.o
[100%] Linking C executable myprog.exe
/usr/lib/gcc/x86_64-pc-cygwin/5.4.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lhello-user
collect2: error: ld returned 1 exit status
clang-3.8: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)
make[2]: *** [CMakeFiles/myprog.dir/build.make:95: myprog.exe] Error 1
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/myprog.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
CMakeLists.txt
cmake_minimum_required(VERSION 2.8.8)
project(LIB_EXAMPLE)
set(CMAKE_C_COMPILER clang)
add_executable(myprog main.c)
target_link_libraries(myprog hello-user)
Библиотека существует внутри /usr/local/lib/
, как libhello-user.dll.a
Примечание: Я использую cygwin с cmake и make.
Возможный дубликат [Как правильно создать файл CMake для модульного проекта] (http://stackoverflow.com/questions/41519666/how-to-correctly-create-a-cmake-file -для-а-модульно-проекта). См. [CMake/Tutorials/Exporting and Importing Targets] (https://cmake.org/Wiki/CMake/Tutorials/Exporting_and_Importing_Targets). Я бы добавил что-то, начиная с 'add_library (hello-user SHARED IMPORTED GLOBAL)'. – Florian
Но я не создаю новую библиотеку? im пытается использовать текущий. ? – Mark
Да, но решение такое же. См. Мой ответ ниже. – Florian