C++ CMake未生成生成文件

C++ CMake未生成生成文件,c++,macos,cmake,C++,Macos,Cmake,嗯。我能够从CMake GUI成功地配置和生成,它似乎在我的构建文件夹中生成了一堆文件。但它并没有创建Make文件。有什么想法吗 编辑: 我所做的只是在Eclipse中创建一个工作区,其中包含一个主项目和一个静态库项目。这是一个简单的HelloWorld应用程序,其中主项目生成输出的“Hello”部分,而静态库生成输出的“World”部分 CMake输出是否给出任何错误消息?否。CMake GUI的唯一输出是:配置完成和生成完成 是否选择了正确的发电机?您正在使用什么设置?我是CMake的新手,

嗯。我能够从CMake GUI成功地配置和生成,它似乎在我的构建文件夹中生成了一堆文件。但它并没有创建Make文件。有什么想法吗

编辑:

我所做的只是在Eclipse中创建一个工作区,其中包含一个主项目和一个静态库项目。这是一个简单的HelloWorld应用程序,其中主项目生成输出的“Hello”部分,而静态库生成输出的“World”部分

CMake输出是否给出任何错误消息?否。CMake GUI的唯一输出是:配置完成和生成完成

是否选择了正确的发电机?您正在使用什么设置?我是CMake的新手,所以我不完全确定你在问什么,但我可以给你一个屏幕截图:

上面的屏幕截图在后台显示Eclipse项目结构,在前台显示带有配置的CMake GUI。下面的屏幕截图显示了生成的文件

-----------------------------------------------------更多信息-----------------------------------------------

我删除了所有生成文件夹并再次运行了cmake。这一次,我收到了以下带有错误的输出:

-- The C compiler identification is Clang 4.2.0
-- The CXX compiler identification is Clang 4.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
World_INCLUDE_DIRS
   used as include directory in directory /Users/pdl/Development/Patricia's New World Sandbox/HelloWorldCMake/Hello/src
World_LIBRARIES
   linked by target "hello" in directory /Users/pdl/Development/Patricia's New World Sandbox/HelloWorldCMake/Hello/src

-- Configuring incomplete, errors occurred!
以下是我的FindWorld.cmake文件的内容:

find_path(World_INCLUDE_DIRS World.h /usr/include "$ENV{WORLD_ROOT}/src")

find_library(World_LIBRARIES libWorld.a /usr/lib "$ENV{WORLD_ROOT}/Debug")

set(World_FOUND TRUE)

if (NOT World_INCLUDE_DIRS)
  set(World_FOUND FALSE)
endif (NOT World_INCLUDE_DIRS)

if (NOT World_LIBRARIES)
  set(World_FOUND FALSE)
endif (NOT World_LIBRARIES)
WORLD_ROOT在我的Eclipse Hello项目中设置为环境变量,目录设置为“/Users/pdl/Development/Patricia's New WORLD Sandbox/HelloWorldCMake/WORLD”啊哈可能是CMake不知道我的Eclipse环境变量是什么

以下是我的Hello CMakeLists.txt文件的内容:

cmake_minimum_required(VERSION 2.8.6)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}")
find_package(World REQUIRED)
include_directories("${World_INCLUDE_DIRS}")
add_executable(hello Hello.cpp)
target_link_libraries(hello ${World_LIBRARIES})
cmake_minimum_required(VERSION 2.8.6)
project(World)
include_directories("${CMAKE_SOURCE_DIR}")
add_library(namer World.cpp World.h)
//Value Computed by CMake
Project_BINARY_DIR:STATIC=/Users/pdl/Development/Patricia's New World Sandbox/hello_world_build

//Value Computed by CMake
Project_SOURCE_DIR:STATIC=/Users/pdl/Development/Patricia's New World Sandbox/HelloWorldCMake/Hello/src

//Path to a file.
World_INCLUDE_DIRS:PATH=World_INCLUDE_DIRS-NOTFOUND

//Path to a library.
World_LIBRARIES:FILEPATH=World_LIBRARIES-NOTFOUND
以下是my World CMakeLists.txt文件的内容:

cmake_minimum_required(VERSION 2.8.6)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}")
find_package(World REQUIRED)
include_directories("${World_INCLUDE_DIRS}")
add_executable(hello Hello.cpp)
target_link_libraries(hello ${World_LIBRARIES})
cmake_minimum_required(VERSION 2.8.6)
project(World)
include_directories("${CMAKE_SOURCE_DIR}")
add_library(namer World.cpp World.h)
//Value Computed by CMake
Project_BINARY_DIR:STATIC=/Users/pdl/Development/Patricia's New World Sandbox/hello_world_build

//Value Computed by CMake
Project_SOURCE_DIR:STATIC=/Users/pdl/Development/Patricia's New World Sandbox/HelloWorldCMake/Hello/src

//Path to a file.
World_INCLUDE_DIRS:PATH=World_INCLUDE_DIRS-NOTFOUND

//Path to a library.
World_LIBRARIES:FILEPATH=World_LIBRARIES-NOTFOUND
果然,它没有找到通往世界项目的道路。这在我的cmakcache.txt文件中:

cmake_minimum_required(VERSION 2.8.6)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}")
find_package(World REQUIRED)
include_directories("${World_INCLUDE_DIRS}")
add_executable(hello Hello.cpp)
target_link_libraries(hello ${World_LIBRARIES})
cmake_minimum_required(VERSION 2.8.6)
project(World)
include_directories("${CMAKE_SOURCE_DIR}")
add_library(namer World.cpp World.h)
//Value Computed by CMake
Project_BINARY_DIR:STATIC=/Users/pdl/Development/Patricia's New World Sandbox/hello_world_build

//Value Computed by CMake
Project_SOURCE_DIR:STATIC=/Users/pdl/Development/Patricia's New World Sandbox/HelloWorldCMake/Hello/src

//Path to a file.
World_INCLUDE_DIRS:PATH=World_INCLUDE_DIRS-NOTFOUND

//Path to a library.
World_LIBRARIES:FILEPATH=World_LIBRARIES-NOTFOUND

我的第一个问题是,我不小心在另一个构建目录中运行了make。我删除了所有生成目录并重试。然后我收到了以下错误:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
World_INCLUDE_DIRS 
    used as include directory in directory /Users/pdl/Development/Patricia's New World Sandbox/HelloWorldCMake/Hello/src
World_LIBRARIES 
    linked by target "hello" in directory /Users/pdl/Development/Patricia's New World Sandbox/HelloWorldCMake/Hello/src

-- Configuring incomplete, errors occurred!

考虑到这个错误,我突然想到CMake当然不知道我的Eclipse环境变量。

-1:请提供更多信息!CMake输出是否给出任何错误消息?是否选择了正确的发电机?您正在使用什么设置?您必须指定Makefile生成器;也许它使用了其他的发电机?你得到了什么文件?听起来你对Eclipse环境变量的看法是正确的。要确认,请尝试在FindWorld.cmake:
消息(“WORLD\u ROOT:$ENV{WORLD\u ROOT}”)中打印
WORLD\u ROOT
的值。
@Fraser-添加一个答案,这样我可以给你一些分数。@Lucy好吧,刚才的问题是“暂停”,因为你最初没有提供足够的信息,所以我不能回答:-)自从你现在修正了你的问题,我已经投票决定重新开放。不管怎么说,答案是你自己想出来的,所以我认为你应该回答你自己的问题。