在本文中,您将会了解到关于寻找“cmakeclean”命令来清除CMake输出的新资讯,同时我们还将为您解释cmake清除原有选项的相关在本文中,我们将带你探索寻找“cmakeclean”命令来清除C
在本文中,您将会了解到关于寻找“cmake clean”命令来清除 CMake 输出的新资讯,同时我们还将为您解释cmake 清除原有选项的相关在本文中,我们将带你探索寻找“cmake clean”命令来清除 CMake 输出的奥秘,分析cmake 清除原有选项的特点,并给出一些关于(CMake系列)CMAKE的hello world、Android Studio-CMake错误:CMake无法找到与“忍者”相对应的构建程序未设置CMAKE_MAKE_PROGRAM、android – cmake gui给出了Unknown CMake命令“CHECK_LIBRARY_EXISTS”、By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has asked CMake to...的实用技巧。
本文目录一览:- 寻找“cmake clean”命令来清除 CMake 输出(cmake 清除原有选项)
- (CMake系列)CMAKE的hello world
- Android Studio-CMake错误:CMake无法找到与“忍者”相对应的构建程序未设置CMAKE_MAKE_PROGRAM
- android – cmake gui给出了Unknown CMake命令“CHECK_LIBRARY_EXISTS”
- By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has asked CMake to...
寻找“cmake clean”命令来清除 CMake 输出(cmake 清除原有选项)
就像make clean
删除 makefile 生成的所有文件一样,我想对 CMake
做同样的事情。很多时候,我发现自己手动浏览了删除文件cmake_install.cmake
和文件夹CMakeCache.txt
的目录CMakeFiles
。
是否有类似cmake clean
自动删除所有这些文件的命令?CMakeLists.txt
理想情况下,这应该遵循当前目录文件中定义的递归结构。
答案1
小编典典CMake 3.X
CMake 3.X 提供了一个“干净”的目标。
cmake --build C:/foo/build/ --target clean
来自 3.0.2 的 CMake 文档:
--clean-first = Build target ''clean'' first, then build. (To clean only, use --target ''clean''.)
CMake 2.X
cmake clean
CMake 版本 2.X中没有
我通常将项目构建在单个文件夹中,例如“build”。所以如果我想make clean
,我可以rm -rf build
。
与根“CMakeLists.txt”位于同一目录中的“build”文件夹通常是一个不错的选择。要构建您的项目,您只需将 CMakeLists.txt
的位置作为参数提供给 cmake。例如:cd <location-of-cmakelists>/build && cmake..
。
(CMake系列)CMAKE的hello world
(ps:本博客建立在cmake安装好的基础上)
本文选择一个最简单的例子,HelloWorld来演练一下cmake的完整构建过程。
此示例基于unbuntu20.04.1的版本
1.准备工作
首先我们创建一个文件夹用来存放cmake的所有示例
mkdir cmake_demos
以后所有的cmake联系都会放在cmake_demos的子目录下,读者可以自行安排目录
然后在cmake_demos新建文件夹d1
mkdir d1
在d1目录,新建main.c和CMakeLists.txt(注意文件名的大小写)
touch main.c CMakeLists.txt
main.c文件内容
CMakeLists.txt文件内容
2.开始构建
所有文件创建完成,此时d1目录应该存在了main.c和CMakeLists.txt两个文件,接下来我们开始构建工程
在此目录运行:
cmake .
输出大概是这样
让我们再看一下目录中的内容,会发现系统自动生成了
CMakeFiles、CMakeCache.txt、cmake_install.cmake等文件
先不用去关注这些文件的作用,最重要的是生成了Makefile
接下来进行工程的实际构建,在这个目录输入make命令,大概会得到以下彩色输出:
如果需要看到make构建的详细过程,可以使用make VERBOSE=1命令来进行构建
输出内容大概是这样
这时候我们需要的目标文件hello已经构建完成了位于当前目录,尝试运行一下
./hello
获得输出
恭喜你,到这里已经学会了简单使用cmake的构建方法。
接下来的博客将会给大家介绍这些文件内容和指令。
欢迎大家一起交流呀
qq群:3638803451
vx:wxid_sgdelhiwombj12
Android Studio-CMake错误:CMake无法找到与“忍者”相对应的构建程序未设置CMAKE_MAKE_PROGRAM
您的CMake文件看上去已被拆除;在这种状态下使用它不会成功构建任何东西。通常,对于NDK项目,我已经看到了CMakeLists.txt模板文件,其中包含native-lib
和log-lib
库的CMake代码。此模板是一个很好的起点。
要想半途而废,请考虑将CMake代码更改为以下内容,或切换为使用this教程中列出的模板:
cmake_minimum_required(VERSION 3.4.1)
# Specify the 'native-lib' library
add_library(native-lib SHARED src/main/cpp/native-lib.cpp)
# Find the log NDK library.
find_library(log-lib log)
# Link the log library to the native-lib library.
target_link_libraries(native-lib ${log-lib})
我建议花一些时间来熟悉CMake,以及如何构造基本的CMake文件。 cmake
tag info中的教程中有很多有用的信息。
为了使忍者工作,您需要在-G
参数之前完成以下操作
DCMAKE_MAKE_PROGRAM
路径。
下面是您可以使用的完整批处理脚本。
cmake -DBUILD_SHARED_LIBS=1 -DCMAKE_TOOLCHAIN_FILE=C:\Users\Aeon\AppData\Local\Android\Sdk\ndk\21.3.6528147\build\cmake\android.toolchain.cmake -DANDROID_NDK=C:\Users\Aeon\AppData\Local\Android\Sdk\ndk\21.3.6528147 -DCMAKE_MAKE_PROGRAM=C:\Users\Aeon\AppData\Local\Android\Sdk\cmake\3.10.2.4988404\bin\ninja.exe -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-16 -DANDROID_TOOLCHAIN=clang -DANDROID_STL=c++_shared -DANDROID_CPP_FEATURES=rtti exceptions "C:\DLib"
cmake --build
pause
android – cmake gui给出了Unknown CMake命令“CHECK_LIBRARY_EXISTS”
我正在尝试编译LibTiff For Android,因此找到了使用Cmake脚本的源代码
https://bitbucket.org/edgarv/libtiff-cmake在这里,当我尝试从cmake-gui运行cmake脚本时,它会给出如下错误
UnkNown CMake command "CHECK_LIBRARY_EXISTS"
我试图在谷歌上搜索,但没有得到任何关于如何解决它的正确答案.
include(CheckLibraryExists)
CHECK_LIBRARY_EXISTS(...)
如果您使用的是第三方代码,请查看包含错误消息.可能是一些未找到的模块,但未能包含,否则就是bug.
By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has asked CMake to...
环境 qt5.12.3 deepin15.10
cmake构建
由于之前使用的是仓库自带的qt环境,后来需要更高版本qt,于是从官网下载安装器自己安装,重新构建之后便出现这个问题,具体报错如下
CMake Warning at src/CMakeLists.txt:45 (find_package):
By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Qt5", but
CMake did not find one.
Could not find a package configuration file provided by "Qt5" with any of
the following names:
Qt5Config.cmake
qt5-config.cmake
Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
to a directory containing one of the above files. If "Qt5" provides a
separate development package or SDK, be sure it has been installed.
我去翻看了cmake官方文档,然后看到一篇文章才明白,cmake在find_package的时候需要提供对应模块的*.cmake文件,根据推测要么是cmake自己提供,显然不是,于是在我的qt安装目录下找到相应目录提供给cmake查找
在我的qt安装路径下的"/opt/Qt/5.12.3/gcc_64/lib/cmake"里面便可以找到提供给cmake的各个模块的文件夹,每个文件夹下提供了对应的*.cmake文件。这篇文章给我的答案:https://stackoverflow.com/questions/15639781/how-to-find-the-qt5-cmake-module-on-windows#
我是这样做的
set(CMAKE_PREFIX_PATH "/opt/Qt/5.12.3/gcc_64")
为每个模块提供*.cmake文件搜索路径
set(Qt5_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5")
set(Qt5Widgets_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5Widgets")
set(Qt5Network_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5Network")
set(Qt5LinguistTools_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5LinguistTools")
然后查找
find_package(Qt5 COMPONENTS Widgets Network LinguistTools)
今天关于寻找“cmake clean”命令来清除 CMake 输出和cmake 清除原有选项的介绍到此结束,谢谢您的阅读,有关(CMake系列)CMAKE的hello world、Android Studio-CMake错误:CMake无法找到与“忍者”相对应的构建程序未设置CMAKE_MAKE_PROGRAM、android – cmake gui给出了Unknown CMake命令“CHECK_LIBRARY_EXISTS”、By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has asked CMake to...等更多相关知识的信息可以在本站进行查询。
本文标签: