Cmake是什么?有什么用?在windows下使用cmake如何用

您现在的位置是: >
CMake安装使用教程(3)
作者:西西
更新时间: 17:50:39
CMake安装使用方法
CMake安装使用教程
动态生成源文件,自动把源文件编译进系统中。
make的时候出错了:D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step5\build&make
Scanning dependencies of target MakeTable
[ 25%] Building CXX object MathFunctions/CMakeFiles/MakeTable.dir/MakeTable.cxx.
Linking CXX executable MakeTable.exe
[ 25%] &Built target MakeTable&
[ 50%] Generating Table.h
'.' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
make[2]: *** [MathFunctions/Table.h] Error 1
make[1]: *** [MathFunctions/CMakeFiles/MathFunctions.dir/all] Error 2
make: *** [all] Error 2
问题分析:
首先看build/makefile文件,关于MakeTable有如下规则:
# Build rule for target.
MakeTable: cmake_check_build_system
&&&&$(MAKE) -f CMakeFiles/Makefile2 MakeTable
.PHONY : MakeTable
再看Makefile2文件,找到出错时正在编译的目标。
# All Build rule for target.
MathFunctions/CMakeFiles/MakeTable.dir/all:
&&&&$(MAKE) -f MathFunctions/CMakeFiles/MakeTable.dir/build.make MathFunctions/CMakeFiles/MakeTable.dir/depend
&&&&$(MAKE) -f MathFunctions/CMakeFiles/MakeTable.dir/build.make MathFunctions/CMakeFiles/MakeTable.dir/build
&&&&$(CMAKE_COMMAND) -E cmake_progress_report D:/Projects/Lab/testngpp/cmake-2.8.1/Tests/Tutorial/Step5/build/CMakeFiles 1
&&&&@echo &Built target MakeTable&
.PHONY : MathFunctions/CMakeFiles/MakeTable.dir/all
Make规则的执行顺序是按照命令的先后顺序:
如果Makefile内容如下:
&&&&echo &First line.&
&&&&echo &Second line.&
那么make结果:
D:\Users\Desktop&make
echo &First line.&
First line.
echo &Second line.&
Second line.
由此,Built target MakeTable输出之后才失败的。
生成各种平台Windows/Ubuntu/etc.上的安装包,包括二进制安装包和源码安装包。
可以把依赖的系统库也打包。include (InstallRequiredSystemLibraries)
使用CPack。
由于Step1-7,后面一步的配置都包含了前面一步的配置,所以从Step5开始,就会遇到make的问题。
为了编译通过,可以修改MathFunctions目录下的CMakeLists.txt和mysqrt.cxx,去掉所有对Table.h&的依赖。
运行make package可以生成安装包:
第一次,因为没有安装nsis,提示如下问题:
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step6\build&make package
[ 50%] &Built target MathFunctions&
[100%] &Built target Tutorial&
Run CPack packaging tool...
CPack Error: Cannot find NSIS registry value. This is usually caused by NSIS not
&being installed. Please install NSIS from http://nsis.sourceforge.net
CPack Error: Cannot initialize the generator NSIS
make: *** [package] Error 1
安装NSIS之后,运行成功:
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step6\build&make package
[ 50%] &Built target MathFunctions&
[100%] &Built target Tutorial&
Run CPack packaging tool...
CPack: Create package using NSIS
CPack: Install projects
CPack: - Run preinstall target for: Tutorial
CPack: - Install project: Tutorial
CPack: Compress package
CPack: Finalize package
CPack: Package D:/Projects/Lab/testngpp/cmake-2.8.1/Tests/Tutorial/Step6/build/T
utorial-1.0.1-win32.exe generated.
生成了如下的Windows安装包文件:
安装完成后,还可以很方便的卸载它:
运行make package_source可以产生源代码包。(我的电脑上提示找不到合适的zip程序)
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step6\build&make package_sou
Run CPack packaging tool for source...
CPack Error: Cannot find a suitable ZIP program
CPack Error: Cannot initialize the generator ZIP
make: *** [package_source] Error 1
把结果发布到dashboard。
下面网址是一个公开的dashboard:
http://www.cdash.org/CDash/index.php?project=PublicDashboard
dashboard上显示的项目名称通过如下方式设置:
需要先把cmake\bin目录加入path中,然后执行ctest -D Experimental。这里遇到了一个错误。
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step7\build&ctest -D Experim
&& Site: JELLY-PC2
&& Build name: Win32-make
Create new tag: 3 - Experimental
Configure project
&& Each . represents 1024 bytes of output
&&& . Size of output: 0K
Build project
&& Each symbol represents 1024 bytes of output.
&& '!' represents an error and '*' a warning.
&&& . Size of output: 0K
&& 0 Compiler errors
&& 0 Compiler warnings
Test project D:/Projects/Lab/testngpp/cmake-2.8.1/Tests/Tutorial/Step7/build
&&& Start 1: TutorialRuns
1/9 Test #1: TutorialRuns ..................... Passed 0.01 sec
&&& Start 2: TutorialUsage
2/9 Test #2: TutorialUsage .................... Passed 0.01 sec
&&& Start 3: TutorialComp4
3/9 Test #3: TutorialComp4 .................... Passed 0.01 sec
&&& Start 4: TutorialComp9
4/9 Test #4: TutorialComp9 .................... Passed 0.01 sec
&&& Start 5: TutorialComp5
5/9 Test #5: TutorialComp5 .................... Passed 0.01 sec
&&& Start 6: TutorialComp7
6/9 Test #6: TutorialComp7 .................... Passed 0.01 sec
&&& Start 7: TutorialComp25
7/9 Test #7: TutorialComp25 ................... Passed 0.01 sec
&&& Start 8: TutorialComp-25
8/9 Test #8: TutorialComp-25 .................. Passed 0.01 sec
&&& Start 9: TutorialComp0.0001
9/9 Test #9: TutorialComp0.0001 ............... Passed 0.01 sec
100% tests passed, 0 tests failed out of 9
Total Test time (real) = 0.19 sec
Performing coverage
&Cannot find any coverage files. Ignoring Coverage request.
Submit files (using http)
&& Using HTTP submit method
&& Drop site:http://
&& Error when uploading file: D:/Projects/Lab/testngpp/cmake-2.8.1/Tests/Tutoria
l/Step7/build/Testing/3/Build.xml
&& Error message was: couldn't connect to host
&& Problems when submitting via HTTP
Errors while running CTest
产生了如下一些文件:
相关下载推荐
下载地址:
下载地址:
小编推荐软件专题
电脑音乐播放器下载排行榜
电脑浏览器下载排行榜
电脑音乐播放器哪个好
电脑拼音输入法哪个好
常用软件下载
热门关键词
网站服务:
西西下载专题合作 : QQ: (验证时请注明广告投放内容)
联系EMAIL :(来信时请注明广告投放内容)
西西下载官方微信
Copyright (C)
.CC 西西下载, All Rights Reserved1. DownLoad cmake下载地址:http://www.cmake.org/cmake/resources/software.html2. Installcmake安装跟windows下其他软件相同,无任何特殊之处。3. Using这里要注意,使用cmake时,首先:人肉编写好CMakeLists.txt(注意文件名的大小写)。其次:在命令行下运行cmake,而不是直接启动cmake。直接启动cmake老是会报错误。当然linux下使用cmake会更加的方便。cmake启动起来后,选择要编译的code及解决方案生成路径;congifigure,选择要用的编译器;generate,生成解决方法。如果,以后要添加库文件或者路径,可以直接在CmakeLists.txt中进行编写。在windows下怎么用linux的环境_百度知道Win10 64位系统下PCL + Visual Studio + cmake + (Qt) 安装调试
在这里只介绍all in one方式安装
1.软件准备
安装pcl(点云库)需要涉及pcl、pcl-pdb、cmake、openni、visual studio、qt等软件。pcl是点云算法库。pcl-pdb是pcl的数据库文件。cmake是用来为你所编写的程序进行环境配置及生成项目文件。visual studion是windows的开发工具,将经过cmake生成的项目文件执行产生可执行文件。qt是一个图形库,这里需要安装qt是因为pcl中有一个第三库vtk中涉及qt库中的函数。从网上下载这些软件需要遵守一定的规则,下载的所有软件位数最好统一,全部为32位,或64位。其中在pcl官网下载pcl、pdb文件时要与visual studio的版本相对应。你如果想省事的话,可以下载我云盘里的所有文件。 提取密码:3jim 提取密码:vdd6 提取密码:c09l 提取密码:qj08 提取密码:h45r 提取密码:sdr9
安装过程如图:建议取消openni,openni单独安装,因为未去掉openni时发生了错误,可能是我系统的问题,你可以先尝试一下不去掉openni安装单独安装openni将下载的pcl的pdb文件解压,并将解压后的所有文件拷贝到pcl安装目录下的bin目录下,如E:/program files/pcl 1.6.0/bin关于cmake、visual studio的安装很简单,在这里就不再讲解。
新建一个目录example,在其目录下新建两个子目录source、cmake-bin,在source下新建两个文件project_inliers.cpp和CMakeLists.txt。
project_inliers.cpp内容如下:
#include &iostream&
#include &pcl/io/pcd_io.h&
#include &pcl/point_types.h&
#include &pcl/ModelCoefficients.h&
#include &pcl/filters/project_inliers.h&
main (int argc, char** argv)
pcl::PointCloud&pcl::PointXYZ&::Ptr cloud (new pcl::PointCloud&pcl::PointXYZ&);
pcl::PointCloud&pcl::PointXYZ&::Ptr cloud_projected (new pcl::PointCloud&pcl::PointXYZ&);
// Fill in the cloud data
cloud-&width
cloud-&height = 1;
cloud-&points.resize (cloud-&width * cloud-&height);
for (size_t i = 0; i & cloud-&points.size (); ++i)
cloud-&points[i].x = 1024 * rand () / (RAND_MAX + 1.0f);
cloud-&points[i].y = 1024 * rand () / (RAND_MAX + 1.0f);
cloud-&points[i].z = 1024 * rand () / (RAND_MAX + 1.0f);
std::cerr && "Cloud before projection: " && std::
for (size_t i = 0; i & cloud-&points.size (); ++i)
std::cerr && "
" && cloud-&points[i].x && " "
&& cloud-&points[i].y && " "
&& cloud-&points[i].z && std::
// Create a set of planar coefficients with X=Y=0,Z=1
pcl::ModelCoefficients::Ptr coefficients (new pcl::ModelCoefficients ());
coefficients-&values.resize (4);
coefficients-&values[0] = coefficients-&values[1] = 0;
coefficients-&values[2] = 1.0;
coefficients-&values[3] = 0;
// Create the filtering object
pcl::ProjectInliers&pcl::PointXYZ&
proj.setModelType (pcl::SACMODEL_PLANE);
proj.setInputCloud (cloud);
proj.setModelCoefficients (coefficients);
proj.filter (*cloud_projected);
std::cerr && "Cloud after projection: " && std::
for (size_t i = 0; i & cloud_projected-&points.size (); ++i)
std::cerr && "
" && cloud_projected-&points[i].x && " "
&& cloud_projected-&points[i].y && " "
&& cloud_projected-&points[i].z && std::
return (0);
CMakeLists.txt内容如下:
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(project_inliers)
find_package(PCL 1.2 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable (project_inliers project_inliers.cpp)
target_link_libraries (project_inliers ${PCL_LIBRARIES})
运行cmake按照下图操作cmake配置生成最终会产生如下项目,该项目包含如下文件双击运行*.sln文件,会以visual studio打开通过视图--解决方案资源管理器,打开*.cpp文件将Proj_Name右击设置成启动项开始debug但是在运行时很可能出现错误:fatal error LNK1104: 无法打开文件“C:\Qt\4.8.0\lib\QtGuid4.lib”,这主要是因为VTK库里面依赖函数的关系不对应,我的QT版本是Qt4.8.6所以必须修改这些依赖函数。解决方法是打开路径E:\Program Files\PCL 1.6.0\3rdParty\VTK\lib\vtk-5.8下的三个文件:VTKConfigQt.cmakeVTKTargets-debug.cmakeVTKTargets-release.cmake将其中的路径C:\Qt\4.8.0替换成你现有版本的Qt路径,例如我的是:E:\Qt4.8.6,(当然也可以将这个路径定义为环境变量 $(QT_ROOT));最终即可正常运行。4.执行可执行文件上面几个步骤运行无误后,就会在cmake-bin/Debug目录下产生一个exe的可执行文件,windows下可通过cmd运行该文件。win+R——cmd,运行效果如下:
你可能感兴趣的文章
2 收藏,495
7 收藏,559
本文隶属于专栏
记录Linux下工具使用过程的心得体会。
分享到微博?
技术专栏,帮你记录编程中的点滴,提升你对技术的理解收藏感兴趣的文章,丰富自己的知识库
明天提醒我
我要该,理由是:
扫扫下载 App
SegmentFault
一起探索更多未知}

我要回帖

更多关于 windows下使用cmake 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信