【发布时间】:2012-08-01 19:47:36
【问题描述】:
我正在尝试使用 Visual Studio 2010 和 Cygwin 在 Windows 7 x64 上运行 cmake hello world 程序,但似乎两者都无法工作。我的目录结构如下:
HelloWorld
-- CMakeLists.txt
-- src/
-- -- CMakeLists.txt
-- -- main.cpp
-- build/
我做了一个cd build,然后是一个cmake ..,然后得到一个错误说明
CMake Error: CMake can not determine linker language for target:helloworld
CMake Error: Cannot determine link language for target "helloworld".
但是,如果我在我的 filsystem 和 src/CMakeLists.txt 中将 main.cpp 的扩展名更改为 main.c,一切都会按预期工作。这是从 Visual Studio 命令提示符(Visual Studio 解决方案生成器)和 Cygwin 终端(Unix Makefiles 生成器)运行的情况。
知道为什么这段代码不起作用吗?
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;
}
【问题讨论】:
-
"[...]如果我更改 main.cpp[...] 的扩展名" 你把它改成什么? .cc?
-
哎呀。不小心把它漏掉了。我将其更改为“.c”。在原帖中编辑。这几乎让我觉得没有 cpp 编译器或类似的东西,但是 g++ 已安装,Visual Studio 也不应该有 c++ 问题。