C++ SDL2_image 库使用 CMake 提供未定义的引用

问题描述 投票:0回答:1

我有一个 C++ 项目,我想在其中使用库

SDL2
SDL2_image
,我从官方 git 存储库下载了最新的
-VC
版本,并将它们放在我的项目中名为 external/ 的文件夹中。

然后我创建了一个 CMakeLists.txt 来构建我的项目,在那里我指定了库的路径并使用 target_link_libraries 来链接它们。

CMakeLists.txt:

set(SDL2_DIR "C:/../external/SDL2-2.28.5/cmake")
set(SDL2_image_DIR "C:/../external/SDL2_image-2.8.1/cmake")

find_package(SDL2 REQUIRED)
find_package(SDL2_image REQUIRED)

target_include_directories(main SYSTEM PUBLIC "C:/../external/SDL2-2.28.5/include")
target_include_directories(main SYSTEM PUBLIC "C:/../external/SDL2_image-2.8.1/include")

target_link_libraries(main ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES})

现在,虽然这对于标准

SDL2
库工作得很好,但当我尝试使用
SDL2_image
库中的函数时,我得到了未定义的引用。

我的系统运行Windows 11,我使用VSCode作为IDE。 我使用的编译器是g++。

提前致谢!

c++ visual-studio-code cmake sdl-2
1个回答
0
投票

我能够在 CMakeLists.txt 中使用此命令修复它:

target_link_libraries(myProject SDL2::SDL2main SDL2::SDL2 SDL2_image::SDL2_image)

而不是:

target_link_libraries(主 ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES})

© www.soinside.com 2019 - 2024. All rights reserved.