Tôi đang cố gắng chạy chương trình thế giới chào cmake trên Windows 7 x64 với cả Visual Studio 2010 và Cygwin, nhưng dường như không thể làm việc. cấu trúc thư mục của tôi là như sau:CMake không thể xác định ngôn ngữ liên kết với C++
HelloWorld
-- CMakeLists.txt
-- src/
-- -- CMakeLists.txt
-- -- main.cpp
-- build/
tôi làm một cd build
theo sau là một cmake ..
, và nhận được một lỗi nói rằng
CMake Error: CMake can not determine linker language for target:helloworld
CMake Error: Cannot determine link language for target "helloworld".
Tuy nhiên, nếu tôi thay đổi phần mở rộng của main.cpp to main. c cả trên hệ thống tệp của tôi và trong src/CMakeLists.txt
mọi thứ hoạt động như mong đợi. Đây là trường hợp chạy từ cả Visual Studio Command Prompt (Visual Studio Solution Generator) và Cygwin Terminal (Unix Makefiles Generator).
Bất kỳ ý tưởng nào tại sao mã này sẽ không hoạt động?
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;
}
"[...] nếu tôi thay đổi phần mở rộng của main.cpp [...]" Bạn thay đổi nó thành gì? .cc? – JAB
oops. Trái đó ra một cách tình cờ. Tôi đổi nó thành '.c'. Đã chỉnh sửa trong bài đăng gốc. Nó gần như làm cho tôi nghĩ rằng không có một trình biên dịch cpp hoặc một cái gì đó của loại, nhưng g + + là insalled và studio trực quan không nên có vấn đề với c + + hoặc. –