J'essaie d'exécuter un programme cmake hello world sur Windows 7 x64 avec Visual Studio 2010 et Cygwin, mais je n'arrive pas à faire fonctionner l'un ou l'autre. Ma structure de répertoires est la suivante:
HelloWorld
-- CMakeLists.txt
-- src/
-- -- CMakeLists.txt
-- -- main.cpp
-- build/
Je fais un cd build
suivi d'un cmake ..
, et j'obtiens une erreur indiquant que
CMake Error: CMake can not determine linker language for target:helloworld
CMake Error: Cannot determine link language for target "helloworld".
Cependant, si je change l'extension de main.cpp en main.c à la fois sur mon filsystem et dans src/CMakeLists.txt
tout fonctionne comme prévu. C'est le cas à partir de l'invite de commande Visual Studio (Visual Studio Solution Generator) et du terminal Cygwin (Unix Makefiles Generator).
Une idée pourquoi ce code ne fonctionnerait pas?
CMakeLists.txt
PROJECT(HelloWorld C)
cmake_minimum_required(VERSION 2.8)
# include the cmake modules directory
set(CMAKE_MODULE_PATH ${HelloWorld_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
add_subdirectory(src)
src / CMakeLists.txt
# Include the directory itself as a path to include directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Create a variable called helloworld_SOURCES containing all .cpp files:
set(HelloWorld_SOURCES main.cpp)
# Create an executable file called helloworld from sources:
add_executable(hello ${HelloWorld_SOURCES })
src / main.cpp
int main()
{
return 0;
}