Неопределенная ссылка на RayLibs при связывании с CMake?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Неопределенная ссылка на RayLibs при связывании с CMake?

Сообщение Anonymous »

Я пытаюсь использовать CMake для настройки простого проекта, связывающего raylibs. Всякий раз, когда я пытаюсь запустить свою основную функцию, я продолжаю получать необъявленные ссылки на вызовы моих функций:
/usr/bin/ld: /home/doppler/C++ Projects/test 2/source/main.cpp:15: undefined reference to `SetTargetFPS'

Краткий обзор того, как я начал этот проект:
Создал каталог, test2, внешний, исходный код.
Использовал быстрый запуск CMake в VS Код
git клонировал raylibs во внешний
отредактировал мой файл CMake;
cmake_minimum_required(VERSION 3.30.0)
project(test2 VERSION 0.1.0 LANGUAGES C CXX)

set(MAIN_PATH source/main.cpp)

add_executable(${PROJECT_NAME} ${MAIN_PATH})

add_subdirectory(external/raylib)
include_directories("external" "external/raylib/src")
target_link_libraries(${PROJECT_NAME} PRIVATE raylib)

Открыл терминал в моем основном каталоге;
mkdir build
cd build
cmake --build .

Запустите main, чтобы не обнаружить последующих ошибок, кроме неопределенных неопределенных ссылок.
Запуск cmake --build . --verbose возвращает:
doppler@doppler-Dell-G15-5510:~/C++ Projects/test 2/build$ cmake --build . --verbose
Change Dir: '/home/doppler/C++ Projects/test 2/build'

Run Build Command(s): /home/doppler/.local/lib/python3.10/site-packages/cmake/data/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile
/home/doppler/.local/lib/python3.10/site-packages/cmake/data/bin/cmake -S"/home/doppler/C++ Projects/test 2" -B"/home/doppler/C++ Projects/test 2/build" --check-build-system CMakeFiles/Makefile.cmake 0
/home/doppler/.local/lib/python3.10/site-packages/cmake/data/bin/cmake -E cmake_progress_start "/home/doppler/C++ Projects/test 2/build/CMakeFiles" "/home/doppler/C++ Projects/test 2/build//CMakeFiles/progress.marks"
/usr/bin/gmake -f CMakeFiles/Makefile2 all
gmake[1]: Entering directory '/home/doppler/C++ Projects/test 2/build'
/usr/bin/gmake -f external/raylib/raylib/external/glfw/src/CMakeFiles/glfw.dir/build.make external/raylib/raylib/external/glfw/src/CMakeFiles/glfw.dir/depend
gmake[2]: Entering directory '/home/doppler/C++ Projects/test 2/build'
cd "/home/doppler/C++ Projects/test 2/build" && /home/doppler/.local/lib/python3.10/site-packages/cmake/data/bin/cmake -E cmake_depends "Unix Makefiles" "/home/doppler/C++ Projects/test 2" "/home/doppler/C++ Projects/test 2/external/raylib/src/external/glfw/src" "/home/doppler/C++ Projects/test 2/build" "/home/doppler/C++ Projects/test 2/build/external/raylib/raylib/external/glfw/src" "/home/doppler/C++ Projects/test 2/build/external/raylib/raylib/external/glfw/src/CMakeFiles/glfw.dir/DependInfo.cmake" "--color="
gmake[2]: Leaving directory '/home/doppler/C++ Projects/test 2/build'
/usr/bin/gmake -f external/raylib/raylib/external/glfw/src/CMakeFiles/glfw.dir/build.make external/raylib/raylib/external/glfw/src/CMakeFiles/glfw.dir/build
gmake[2]: Entering directory '/home/doppler/C++ Projects/test 2/build'
gmake[2]: Nothing to be done for 'external/raylib/raylib/external/glfw/src/CMakeFiles/glfw.dir/build'.
gmake[2]: Leaving directory '/home/doppler/C++ Projects/test 2/build'
[ 81%] Built target glfw
/usr/bin/gmake -f external/raylib/raylib/CMakeFiles/raylib.dir/build.make external/raylib/raylib/CMakeFiles/raylib.dir/depend
gmake[2]: Entering directory '/home/doppler/C++ Projects/test 2/build'
cd "/home/doppler/C++ Projects/test 2/build" && /home/doppler/.local/lib/python3.10/site-packages/cmake/data/bin/cmake -E cmake_depends "Unix Makefiles" "/home/doppler/C++ Projects/test 2" "/home/doppler/C++ Projects/test 2/external/raylib/src" "/home/doppler/C++ Projects/test 2/build" "/home/doppler/C++ Projects/test 2/build/external/raylib/raylib" "/home/doppler/C++ Projects/test 2/build/external/raylib/raylib/CMakeFiles/raylib.dir/DependInfo.cmake" "--color="
gmake[2]: Leaving directory '/home/doppler/C++ Projects/test 2/build'
/usr/bin/gmake -f external/raylib/raylib/CMakeFiles/raylib.dir/build.make external/raylib/raylib/CMakeFiles/raylib.dir/build
gmake[2]: Entering directory '/home/doppler/C++ Projects/test 2/build'
gmake[2]: Nothing to be done for 'external/raylib/raylib/CMakeFiles/raylib.dir/build'.
gmake[2]: Leaving directory '/home/doppler/C++ Projects/test 2/build'
[ 96%] Built target raylib
/usr/bin/gmake -f CMakeFiles/test2.dir/build.make CMakeFiles/test2.dir/depend
gmake[2]: Entering directory '/home/doppler/C++ Projects/test 2/build'
cd "/home/doppler/C++ Projects/test 2/build" && /home/doppler/.local/lib/python3.10/site-packages/cmake/data/bin/cmake -E cmake_depends "Unix Makefiles" "/home/doppler/C++ Projects/test 2" "/home/doppler/C++ Projects/test 2" "/home/doppler/C++ Projects/test 2/build" "/home/doppler/C++ Projects/test 2/build" "/home/doppler/C++ Projects/test 2/build/CMakeFiles/test2.dir/DependInfo.cmake" "--color="
gmake[2]: Leaving directory '/home/doppler/C++ Projects/test 2/build'
/usr/bin/gmake -f CMakeFiles/test2.dir/build.make CMakeFiles/test2.dir/build
gmake[2]: Entering directory '/home/doppler/C++ Projects/test 2/build'
[ 98%] Building CXX object CMakeFiles/test2.dir/source/main.cpp.o
/usr/bin/c++ -DGRAPHICS_API_OPENGL_33 -DPLATFORM_DESKTOP -I"/home/doppler/C++ Projects/test 2/external" -I"/home/doppler/C++ Projects/test 2/external/raylib/src" -I"/home/doppler/C++ Projects/test 2/external/raylib/src/external/glfw/include" -g -MD -MT CMakeFiles/test2.dir/source/main.cpp.o -MF CMakeFiles/test2.dir/source/main.cpp.o.d -o CMakeFiles/test2.dir/source/main.cpp.o -c "/home/doppler/C++ Projects/test 2/source/main.cpp"
[100%] Linking CXX executable test2
/home/doppler/.local/lib/python3.10/site-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/test2.dir/link.txt --verbose=1
/usr/bin/c++ -g CMakeFiles/test2.dir/source/main.cpp.o -o test2 external/raylib/raylib/libraylib.a -lm -lpthread /usr/lib/x86_64-linux-gnu/libOpenGL.so /usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-gnu/libGLU.so /usr/lib/x86_64-linux-gnu/librt.a -lm -ldl
gmake[2]: Leaving directory '/home/doppler/C++ Projects/test 2/build'
[100%] Built target test2
gmake[1]: Leaving directory '/home/doppler/C++ Projects/test 2/build'
/home/doppler/.local/lib/python3.10/site-packages/cmake/data/bin/cmake -E cmake_progress_start "/home/doppler/C++ Projects/test 2/build/CMakeFiles" 0


Подробнее здесь: https://stackoverflow.com/questions/787 ... with-cmake
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»