C++ CMake与cygwin“一起制作”;make[2]:***没有规则使目标';cygwin'&引用;
我在尝试在Windows上使用cmake在cygwin中编译一个项目时,遇到了这个完全不支持google的错误 有问题的CMakeLists.txt文件是:C++ CMake与cygwin“一起制作”;make[2]:***没有规则使目标';cygwin'&引用;,c++,gcc,makefile,cmake,cygwin,C++,Gcc,Makefile,Cmake,Cygwin,我在尝试在Windows上使用cmake在cygwin中编译一个项目时,遇到了这个完全不支持google的错误 有问题的CMakeLists.txt文件是: # Minimum cmake version (required) cmake_minimum_required( VERSION 2.8.4 ) # Project name project( sdlinterface ) # Find SDL2 include( FindPkgConfig ) pkg_search_module(
# Minimum cmake version (required)
cmake_minimum_required( VERSION 2.8.4 )
# Project name
project( sdlinterface )
# Find SDL2
include( FindPkgConfig )
pkg_search_module( SDL2 REQUIRED sdl2 )
set (PROJECT_INCLUDE_DIR
${SDL2_INCLUDE_DIRS} # SDL headers
${PROJECT_SOURCE_DIR}/include
)
set (PROJECT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
set(PROJECT_SRCS
${PROJECT_SOURCE_DIR}/SDLMain.cpp
${PROJECT_SOURCE_DIR}/SDLWindow.cpp
${PROJECT_SOURCE_DIR}/SDLEventLoop.cpp
)
# Set the compiler flags (specifically the c++11 one)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
include_directories("${PROJECT_BINARY_DIR}")
include_directories("${PROJECT_INCLUDE_DIR}")
add_library(${PROJECT_NAME} SHARED ${PROJECT_SRCS})
set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE CXX)
# Link project with SDL
target_link_libraries(${PROJECT_NAME}
SDL2
)
知道为什么我调用make时它试图编译一个cygwin目标吗
完整的错误消息是
$ make
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxxx/Projects/sdlgame/Source/build
make[2]: *** No rule to make target 'cygwin', needed by 'cygsdlinterface.dll'. Stop.
CMakeFiles/Makefile2:170: recipe for target 'Libraries/LEngine/sdlinterface/build/CMakeFiles/sdlinterface.dir/all' failed
make[1]: *** [Libraries/LEngine/sdlinterface/build/CMakeFiles/sdlinterface.dir/all] Error 2
Makefile:75: recipe for target 'all' failed
make: *** [all] Error 2
也许不是解决办法,但至少有一些想法
find_包(PkgConfig)
${SDL2\u库}
和${SDL2\u LDFLAGS}
而不是目标链接库(…SDL2)
谢谢你的建议!不幸的是,这里没有解决这个问题。事实上,我没有使用Unix Makefiles生成器,但我忘了在cygwin环境中这是个好主意。