Sto tentando di eseguire un programma cmake ciao mondo su Windows 7 x64 con Visual Studio 2010 e Cygwin, ma non riesco a trovare nessuno dei due a lavorare. La mia struttura di directory è la seguente:CMake non è in grado di determinare la lingua del linker con C++
HelloWorld
-- CMakeLists.txt
-- src/
-- -- CMakeLists.txt
-- -- main.cpp
-- build/
faccio un cd build
seguito da un cmake ..
, e ottengo un errore che indica che
CMake Error: CMake can not determine linker language for target:helloworld
CMake Error: Cannot determine link language for target "helloworld".
Tuttavia, se cambio l'estensione del main.cpp al principale. c sia sul mio filesystem che su src/CMakeLists.txt
tutto funziona come previsto. Questo è il caso in esecuzione sia dal prompt dei comandi di Visual Studio (Visual Studio Solution Generator) che dal terminale Cygwin (Unix Makefiles Generator).
Qualche idea sul perché questo codice non funzionerebbe?
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;
}
"[...] se cambio l'estensione di main.cpp [...]" A cosa si cambia? .cc? – JAB
oops. Lasciato fuori per caso. Lo cambio in ".c". Modificato nel post originale. Mi fa quasi pensare che non ci sia un compilatore di cpp o qualcosa del genere, ma g ++ è nascosto e lo studio visivo non dovrebbe avere problemi con C++. –