我最近开始使用现代的CMake原则,并在我的项目中包含配置文件。
尽管我可以使用我的一个项目,比如说Foo,但作为另一个项目的依赖项,我不能在工具中看到foo项目变量作为构建项目栏时的CMake图形用户界面。
但是,可以正确地找到路径,并且正确地构建依赖项目。有人知道我怀念什么吗?
以下是FooConfig.cmake.in文件的示例:
# - Config file for the foo package
# It defines the following variables
# Foo_INCLUDE_DIRS - include directories for Foo
# Foo_
当我编译频谱解算器时,我正在尝试使用Cmake来管理Fortran和C代码的依赖关系。但是似乎Cmake找不到编译器,尽管我已经下载了Fortran和GCC。这就是我得到的错误。我希望有人能告诉我如何解决这个问题。 the error screenshot `CMake Error at /usr/share/cmake-3.16/Modules/CMakeDetermineCompiler.cmake:58 (set_property):
set_property could not find CACHE variable CMAKE_Fortran_COMPILER. Perhap
我试图将库、可执行文件和包含文件的默认存储更改为Cmake中的指定目录。
例如:当我运行Cmake时,它将在特定目录(源文件保存在其中)中生成,并生成可执行文件、库和包含在同一个源目录中的文件。我希望定义可执行文件、库和包含在下面结构中的文件的输出路径。
X:\Builddirectory\lib\Debug\.... library files.
X:\Builddirectory\lib\Release\.... library files.
X:\Builddirectory\include\.... all the include files.
X:\Builddirectory\bi
我检查了grpc的安装,并完成了构建和安装。
现在,当我试图:
find_package(gRPC CONFIG REQUIRED)
我得到了
CMake Error at CMakeLists.txt:15 (find_package):
Found package configuration file:
/usr/lib64/cmake/grpc/gRPCConfig.cmake
but it set gRPC_FOUND to FALSE so package "gRPC" is considered to be NOT
FOUND. Reaso
我正在尝试用一个CMake项目来设置vcpkg。由于我打算让具有不同平台的多个人在这个项目上工作,所以我希望使用一个环境变量来设置CMAKE_TOOLCHAIN_FILE,而不是cmake:这里推荐的命令行参数
但是,CMake似乎无法找到VCPKG_ROOT环境变量。我将一个小示例与我的项目分开,以查看问题是否仍然存在,并且确实存在。这是我的CMakeLists.txt文件:
cmake_minimum_required (VERSION 3.8)
#vcpkg init
if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_
在CMake中,如何定义用户无法配置但自动计算的选项?
我想做以下几点:
if (FOO AND NOT BAR)
option(BOO "Foo and not bar" ON)
endif()
然后我可以在不同的BOO文件中使用CMake:
if (BOO)
# do something
endif()
在资料来源方面:
#ifdef BOO
// do something
#endif
因此,BOO的行为就像一个常规选项,但是通过运行cmake的用户可以自动计算并且无法配置。
编辑:我现在意识到,选项在源代码中并不是隐式可用的,而是需要使用target_a
我有一个cmake项目,其中我有一些模块,我使用Find-*.cmake在应用程序中包含共享模块。由于没有考虑到我添加的每个模块,我定义了一种全局LIB变量(链接器):
# inside a Find-*.cmake or in the CMakeLists.txt of the modules:
set(LIB ${LIB} ...)
因此,在一个使用某些模块的最终应用程序中,我可以这样做:
target_link_libraries(${APP_NAME} ${LIB})
然后,我希望在/project_path/modules/foo/build中有已编译的模块,这样如果一个模块真的很大
我正在尝试编译我的项目,我的项目正在使用sqlcipher包。sqlcipher被克隆并安装在自定义路径中,我通过$PATH在~/.bashrc文件中导出了这个路径。配置后,如果我在终端中键入sqlcipher,它就能正常工作,但是当我尝试在同一终端上cmake我的项目时,它会给出
-- Checking for one of the modules 'sqlcipher'
CMake Error at /usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:578 (message):
None of the required &
我有CMake项目建立和安装。现在我想由此生成debian包(*.deb)。在互联网上有很多关于如何在CMake文件中添加一些东西来创建debian包的说明,但是我已经构建的项目不属于我,所以我不应该修改它的源代码。我找到了cpack命令,它也可以生成deb包。不幸的是,当我尝试使用以下命令时:
cpack -G DEB -C cmake/build/directory -P myPackage.deb -R 1.0.
我明白了:
CPack Error: Please specify build tree of the project that uses CMake using CPACK_