Я пытаюсь использовать 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}
)
Любые идеи?
Редактировать: Я получил его сейчас, отредактировав поля для путей SDL в графическом интерфейсе Windows. Проблема, конечно, не в том, что я могу найти способ «вернуть обратно» в файл cmake, поэтому мне придется переделывать их каждый раз, сгенерированный файл VS10, загружаемый в визуальную студию, но ни один из них не включает пути и т. д. для SDL были правильно загружены в проект, поэтому он не будет компилировать, говоря, что не знает, где находится SDL.h.
Проверьте файл CMakeCache.txt в каталоге сборки, откуда вы запустили CMake. Вероятно, есть запись, указывающая ': PATH = <Путь к SDL включает> и один для SDL_image. Вам нужно добавить обе эти переменные в команду ['include_directories'] (http://www.cmake.org/cmake/help/v2.8.8/cmake.html#command:include_directories). – Fraser
Не удалось найти это, но я добавил относительные пути с include_directories, и это сработало, поэтому спасибо за помощь !. Только проблема теперь в Windows, я могу скомпилировать программу, но exe требует от меня, чтобы DLL SDL в том же каталоге, что и сам, чтобы он мог выполнить. Есть ли способ обойти это, чтобы иметь SDL внутри самого exe или иметь cmake скопировать их в правильный каталог? – will
Возможно [этот ответ] (http://stackoverflow.com/questions/10671916/cmake-how-to-copy-dll-files-into-release-debug-folder/10672739#10672739) может помочь? – Fraser