2

我一直在尝试将 CMake 与我在 SDL 中做的项目一起使用,但遇到了一些问题。我用于库等的 sdl 文件夹位于 C:\SDL\SDL-1.2.14。错误指出:

Could NOT find SDL (missing:  SDL_LIBRARY SDL_INCLUDE_DIR)  Could NOT find SDLIMAGE (missing:  SDLIMAGE_LIBRARY SDLIMAGE_INCLUDE_DIR)  CMake Error at C:/Program Files (x86)/CMake
2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (MESSAGE):   Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR) Call Stack (most recent call first):   C:/Program Files (x86)/CMake
2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:288 (_FPHSA_FAILURE_MESSAGE)   C:/Program Files (x86)/CMake
2.8/share/cmake-2.8/Modules/FindSDL.cmake:172 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)   CMakeLists.txt:10 (Find_Package)

这是我的 CMakeLists.txt 文件。

Project(SDLExample)
Include(FindSDL)
Include(FindSDL_image)

set(
    SOURCES 
    example.cpp
)

Find_Package(SDL REQUIRED)
Find_Package(SDL_image REQUIRED)

if(NOT SDL_FOUND)
    message( FATAL ERROR "SDL not found!")
endif(NOT SDL_FOUND)

link_libraries(
    ${SDL_LIBRARY}
    ${SDLIMAGE_LIBRARY}
    SDLmain
)

add_executable(
    Example
    WIN32
    MACOSX_BUNDLE
    {$SOURCES}
)

有任何想法吗?

编辑:我现在通过在 Windows GUI 中编辑 SDL 路径的字段来让它工作。问题当然是我找不到将它“反向移植”回 cmake 文件的方法,所以我每次都必须重新编辑它们,生成的 VS10 文件加载到 Visual Studio 中,但没有包含SDL 的路径等已正确加载到项目中,因此它不会编译说它不知道 SDL.h 在哪里。

4

1 回答 1

1

您不需要包含Find<Lib>文件。find_package( <Lib> )自动查找并使用这些文件。

如果您在 Windows 上,我认为您需要将SDLDIR 环境变量设置为 SDL/lib和文件夹所在的/include文件夹。

于 2013-12-13T11:12:36.817 回答