Je tente d'exécuter un programme "hello world" cmake sur Windows 7 x64 avec à la fois Visual Studio 2010 et Cygwin, mais je n'arrive pas à faire fonctionner l'un ou l'autre. Ma structure de répertoire est la suivante:
HelloWorld
-- CMakeLists.txt
-- src/
-- -- CMakeLists.txt
-- -- main.cpp
-- build/
Je fais un cd build
suivi d'un cmake ..
, et je reçois une erreur indiquant que
Erreur CMake: CMake ne peut pas déterminer le langage du lien pour la cible : helloworld
Erreur CMake: Impossible de déterminer le langage de liaison pour la cible "helloworld".
Cependant, si je change l'extension de main.cpp en main.c à la fois sur mon système de fichiers et dans src/CMakeLists.txt
, tout fonctionne comme prévu. C'est le cas en exécutant à la fois à partir de l'Invite de commandes Visual Studio (Générateur de solutions Visual Studio) et du Terminal Cygwin (Générateur de makefiles Unix).
Avez-vous une idée de pourquoi ce code ne fonctionnerait pas?
CMakeLists.txt
PROJECT(HelloWorld C)
cmake_minimum_required(VERSION 2.8)
# inclure le répertoire des modules cmake
set(CMAKE_MODULE_PATH ${HelloWorld_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
add_subdirectory(src)
src/CMakeLists.txt
# Inclure le répertoire lui-même en tant que chemin vers les répertoires d'inclusion
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Créer une variable appelée helloworld_SOURCES contenant tous les fichiers .cpp :
set(HelloWorld_SOURCES main.cpp)
# Créer un fichier exécutable appelé hello à partir des sources :
add_executable(hello ${HelloWorld_SOURCES })
src/main.cpp
int main()
{
return 0;
}