Chào mọi người, em có cần làm project game nho nhỏ, tạo Makefile bằng cmake, với các file trong thư mục screen sẽ cần sử dụng hàm trong file của thư mục ui. Tuy nhiên khi make thì bị dính undefined reference
[ 85%] Building CXX object src/CMakeFiles/chess.dir/main.cpp.o
[100%] Linking CXX executable ../chess
/usr/bin/ld: screen/libscreen.so: undefined reference to `UI::showText(SDL_Renderer*, _TTF_Font*, char const*, SDL_Color, SDL_Rect*)'
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/chess.dir/build.make:91: chess] Error 1
make[1]: *** [CMakeFiles/Makefile2:136: src/CMakeFiles/chess.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
Các file CMakeLists.txt của các thư mục em đều add target_link_libraries rồi nhưng bị như vậy. Các thím giúp em với ạ, em cảm ơn mọi người
File CMake trong thư mục ui:
set(SOURCES ui.cpp)
ADD_LIBRARY(ui SHARED ui.cpp)
target_link_libraries(ui SDL2::Image SDL2::TTF)`
File CMake trong thư mục screen:
# set(SOURCES lobby.cpp)
file(GLOB SOURCES "*.cpp")
include_directories(${PROJECT_SOURCE_DIR})
ADD_LIBRARY(screen SHARED ${SOURCES})
target_link_libraries(screen ui)
Link github cho các mọi người cần: https://github.com/0x2f0713/dino
Cấu trúc thư mục: