2
我一直在尝试使用CMake与我在SDL中执行的项目,但遇到了一些问题。我的sdl文件夹等库位于C:\ SDL \ SDL-1.2.14。错误状态:CMake与SDL导致错误
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路径的字段来开始工作。问题当然是我找不到一种方法将这个“backport”返回到cmake文件中,所以我必须每次重新编辑它们,将生成的VS10文件加载到visual studio中,但是没有包含SDL的路径等被正确加载到项目中,所以它不会编译,说它不知道SDL.h在哪里。
检查您运行CMake的build目录中的CMakeCache.txt文件。可能有一个条目指定“:PATH =”,另一个用于SDL_image。您需要在['include_directories'](http://www.cmake.org/cmake/help/v2.8.8/cmake.html#command:include_directories)命令中添加这两个变量。 –
Fraser
找不到那个,但是我用include_directories添加了相对路径,它工作,所以感谢您的帮助!现在只有Windows的问题是,我可以编译程序,但是exe需要我将SDL dll与自己放在同一个目录中才能执行。有没有办法解决这个问题,让SDL在exe文件中,或者cmake将它们复制到正确的目录中? – will
也许[这个答案](http://stackoverflow.com/questions/10671916/cmake-how-to-copy-dll-files-into-release-debug-folder/10672739#10672739)可以帮助吗? – Fraser