1. CMake怎么装不起来
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
CMake 可以编译源代码、制作程式库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。CMake 支持 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake 也支持静态与动态程式库的建构。
“CMake”这个名字是“cross platform make”的缩写。虽然名字中含有“make”,但是CMake和Unix上常见的“make”系统是分开的,而且更为高阶。
下载:
在安装metis-5.0时,安装说明中要求必须安装CMake2.8版本,下面是CMake的安装和使用方法,记录下来以便以后学习。
在网址 http://www.cmake.org/ 下载你所需要的CMake源码包cmake-2.8.8.tar..gz(版本不同,压缩包后缀不同),分为Unix/linux版本 和 windows版本 。
1、安装
有好几种安装CMake 的方法,因你所用的平台而异。
(1)从源码安装
Windows
在CMake 下载页面 上有已编译好的二进制包。它提供的是一个可执行的安装程序。你还可以下载源码包并从源码包编译CMake。CMake下载页面还提供了已释出的源码和访问CVS的指令。
为了从源码树编译CMake,你必须先要安装最新的CMake二进制版本,因为要用它来编译源码树。一旦装好了二进制版本的CMake,你就可以像编译其他项目一样使用CMake编译CMake了。一般来说,这意思是你要选择CMake源码目录作为源目录,然后再指定编译出来的可执行程序结果的位置。
Linux, Mac OSX, UNIX & Cygwin
在CMake 下载页面 上有许多UNIX平台上已经编译好的二进制包。
下面有几种从源码树编译CMake的方法:
解压:tar xvf cmake-2.8.8.tar.gz
进入解压目录:cd cmake-2.8.8
进行如下操作:(选择适合自己的操作步骤)
如果还没有安装CMake,源码树中提供了一个 bootstrap 脚本:
./bootstrap
make
make install
(注:make install 一步是可选的,CMake 可以在编译目录下运行。)
一个已经安装了的CMake也可以用于编译新版本的CMake:
cmake .
make
make install
(注:make install 一步是可选的,CMake 可以在编译目录下运行。)
在UNIX上,如果你不是使用的GNU C++编译器,你要告诉bootstrap 脚本你想用哪个编译器。这可以在运行configure命令前通过设置CC和CXX环境变量完成。例如,在一个带有7.3X编译器的SGI平台上,你可以像下面这样编译CMake:
(setenv CXX CC; setenv CC cc; ./bootstrap)
make
make install
要查看bootstrap脚本的详细参数,请执行 ./bootstrap –help
(2)从二进制安装
sudo apt-get install cmake
2、cmake 运行
(1)运行cmake with GUI
如果系统中有curses库的话,cmake将生成一个可执行文件ccmake,它是一个基于文本程序的终端,有点类似windows GUI。
在源码目录中运行ccmake .,生成的二进制文件存放在源码目录下
当然也可以在其他目录下运行ccmake,只是要指定你想编译的源码的路径
ccmake的使用
当我们在源码目录下运行ccmake . 时,终端将显示如下:
当我们键入c时,ccmake将编译
当我们键入方向键时,可以选择cache entry
当我们键入enter时,可以编辑cache entry
当我们键入g时,将生成Makefile,然后退出
当我们键入h时,将弹出帮助文档
当我们键入q时,将退出ccmake
当我们键入t时,可以打开或关闭advanced cache entry
(2)运行cmake from the command line
如果源码没有太多的选项(在CMakeCache.txt文件中),可以只用cmake .来产生Makefile。
如果源码选项太多,比如VTK,可以把参数-i传递给cmake,如:cmake -i .,
cmake将让你为每一个cache file文件中的选项指定一个值,也能让你增加新的选项到文件CMakeCache.txt中,或者使用ccmake,或者使用CMakeSetup。
当然,也可以传递设置选项的参数给cmake,如:
cmake -DVARIABLE:TYPE=VALUE .
3、 CMake cache
cmake第一次运行的时候,它将产生一个文件叫CMakeCache.txt,该文件可以被看作一个配置文件,它里面的内容就像传递给configure命令的参数集,CMake GUI可以帮你很容易修改它,当然也可以直接对该文件做修改;如果你的CMakeLists.txt文件做过较大幅度的修改,你需要从cache中删除相关的选项,如果你还没有手动编辑过cache文件,在你重新运行cmake之前需删除它。
4、 Cmake语法
(1)基本概念
cmake使用Cmake dfjs;dfasfLists.txt文件,该文件用include或者add_subdirectory命令来增加额外的输入文件。
注释行以#开头到该行结尾
命令是由命令名,加括号,括号中的参数用空白隔开,它可以是内建的命令如add_library,或者用户定义的宏或函数
所有的空格,包含空白符,空行,tabs,当然除了用来隔开参数的空白,都被忽略
2. Mac用homebrew安装opencv的问题,求大神解决
先执行
brew tap homebrew/science
再brew install opencv
3. CLion+CMake编写C++程序
当在mac系统下编写c++程序时候,一般需要使用Xcode。如果不想装Xcode如何编译、运行程序呢?
一种方法是编写makefile文件,用makefile文件管理程序脚本之间的相互依赖关系;
一、CMake是一种跨平台编译工具,比make更为高级。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序
二、cmake 指向CMakeLists.txt所在的目录,例如cmake .. 表示CMakeLists.txt在当前目录的上一级目录
cmake会生成很多中间文件,所以建议新建一个文件夹存放,分四个步骤:
1、mkdir bulid //新建文件夹存放编译的中间文件
2、cd bulid //进入bulide文件夹
3、cmake .. //因为CMakeLists.txt文件在当前目录的外面,所以cmake命令需要使用cmake ..
4、make //make命令根据makefile文件编译源码,在bulid目录下生成一个可执行文件,运行获取结果
CMakeLists.txt主要包含以上的7个步骤:
#1.cmake verson,指定cmake版本
cmake_minimum_required(VERSION 3.13)
#2.project name,指定项目的名称,一般和项目的文件夹名称FirstProject对应
PROJECT(FirstProject)
#3.head file path,头文件目录
INCLUDE_DIRECTORIES()
#4.source directory,源文件目录
AUX_SOURCE_DIRECTORY(src DIR_SRCS)
#5.set environment variable,设置环境变量,编译用到的源文件全部都要放到这里,否则编译能够通过,但是执行的时候会出现各种问题,比如"symbol lookup error xxxxx , undefined symbol"
SET(TEST_MATH)
#6.add executable file,添加要编译的可执行文件
ADD_EXECUTABLE(${PROJECT_NAME} ${TEST_MATH})
#7.add link library,添加可执行文件所需要的库(命名规则:lib+name+.so),就添加该库的名称
TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)
4. mac os x安装cmake吗
CMake安装和使用_Lionel_新浪博客
2012年5月3日 - 在安装metis-5.0时,安装说明中要求必须安装cmake2.8版本,下面是cmake的安装和使用...linux, mac osx, unix & cygwin 在cmake 下载页面 上有许多unix平... 普通
Mac OS X 安装 Homebrew&XCode&Cmake&Eclipse&Opencv - sjuhui's ...
2013年1月30日 - brew install 安装软件包 cmake 在terminal中输入: brew install cmake 然后回车,即可 eclipse 1.早先版本mac os自带jre,没有jre的可以从http:... 普通
CMake Download Mac
free download cmake for mac 3.7.0 - powerful and cross-platform, open source make system that helps its users to effortlessly build projects on and... 普通
5. make如何指定cmake路径
先在cmakelist.txt所在目录执行cmake,而后再make
6. mac opencv 装好后怎么使用
一、安装OpenCV for MAC 1. 首先下载opencv for mac安装源文件,解压缩 2. 安装cmake程序。下载cmake的dmg文件安装即可。 3. 通过终端进入存放解压后的opencv文件夹,编译安装opencv,使用命令如下: >sudo cmake -G "Unix Makefiles" >sudo mak...
7. CMake,configue出错,以下是错误信息。怎么弄 vs2010的。
CMake,configue出错,弹出框“Error in configuration process,project files may be invalid”是设置错误造成的,解决方法如下:
1、首先编写如下所示的main.cpp。
8. Mac OS X 如何使用小鹤双拼辅助码
一、安装鼠须管输入法
在鼠须管官网下载并安装鼠须管输入法
二、挂接小鹤音形
1. 打开一个Finder,进行键盘操作Shift+command+g,弹出前往文件夹的输入框,输入以下路径(需要根据情况修改) /Users/你第一次进系统起了什么名字这里替换什么名字/Library/Rime/ 并前往,好了,现在进来的文件夹就是鼠须管的配置文件夹了。
2. 编辑default.yaml文件,在schema_list:里添加一条 - schema: flypy
3. 把本压缩包解压并将其中的文件全部复制到这个文件夹里。其中flypy_user.txt文件用户可在其中自定义自己的词组。
4. 重新部署鼠须管,操作键盘control+option+`(`是键盘左上角esc下面那个键),完成
====== 分号引导快捷标点的使用 ======(默认未添加)
①在flypy.schema.yaml文件内找到:
alphabet: 'zyxwvutsrqponmlkjihgfedcba;'
initials: 'abcdefghijklmnopqrstuvwxyz;'
在其末尾加上英文分号,如上
②在custom_phrase.txt文件内添加分号引导编码,如下:
: ;
; ;;
! ;a
% ;b
” ;c
、 ;d
+ ;e
· ;g
← ;o
→ ;p
‰ ;q
- ;r
…… ;s
= ;t
—— ;v
? ;w
____ ;x
@ ;y
“ ;z
另一个安装鼠须管的办法:
---编译安装:
1. 安装xcode(免费,mac下的开发工具)
2. 完成1之后安装使用mac的终端(launchpad里直接搜索)执行命令xcode-select --install进行相关组件安装
3. 完成2之后安装mac下命令行安装软件的工具Homebrew,很好用。在mac终端执行命令ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
4. 完成3就开始安装一系列编译工具了,mac终端执行命令brew install cmake,安装之后再执行命令brew install git,这两个是开发工具,最后执行命令brew install boost,这个是依赖包(不明白的你就知道没这个不行就可以了),至此,准备工作彻底完成
5. 下面开始把软件的代码搞下来。Mac终端执行命令git clone --recursive https://github.com/rime/squirrel.git。这个命令会把代码下载到你终端一打开时默认的目录。
6. 终端执行命令make deps进行依赖的编译,接着执行命令make进行咱们鼠须管的编译。最后,激动人心的时候来了,执行sudo make install并输入登录系统的密码进行输入法的安装。
9. Mac+VScode配置CMake编译HelloWorld
请自行安装
回车后就可以看到已经初始化了一个Cmake工程及其CMakeLists.txt文件+main.cpp文件。build目录只是编译产出物,可以删除后通过 mkdir build && cd build && cmake .. 重新生成。
F1 打开控制台。
打开终端
10. Mac OS下安装测试gtest
git clone http://github.com/google/googletest
cd googletest
cmake .. (此时遇到问题,若没遇到问题的可以往下继续输命令)
make
make install (到这一步就安装完了)
解决方法(前提是之前安装过 CMake ,若没安装的安装完再进行下一步):
1 vi .bash_profile (最好再重新开一个终端来操作)
2 在 .bash_profile 中输入
export CMAKE_ROOT=/Applications/CMake.app/Contents/bin/
export PATH=$CMAKE_ROOT:$PATH
3 保存退出.bash_profile文件
4 source .bash_profile
一般情况下,这样子就可以了,但是我在查看CMake version的时候还是报错了,接着找解决方法。。。
可能是命令输错了,后来才发现应该是cmake --version。但是此时的我,已经找到解决方法啦~
打开CMake应用程序,从菜单栏中选择【Tools】,然后从下拉菜单中选择“How to Install For Command Line Use”,便会弹出一个对话框,这个对话框提示你该如何配置,从而使得在命令行中也能够直接使用CMake命令。
我们主要关注其中的前两种方法。首先,如果你在命令行中输入 cmake --version,你会发现系统并不认识cmake这个命令。然后使用上面图中给出的第一种方法,即在命令行中输入PATH="/Applications/CMake.app/Contents/bin":"$PATH",再执行跟cmake有关的命令,系统就可以正确识别它了。
但是,这个方法只能管一时(这跟Ubuntu下的情况类似),当你关闭命令行窗口后,再重新开启一个命令行窗口,系统仍然表示无法识别cmake命令。所以我们来尝试第二种方法。在新开的命令行窗口中输入(最好是从CMake的GUI对话框上直接复制,以免输错)
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install
此时,再次打开新的命令行窗口,cmake也可以正常运行了!
到此为止,这个问题就处理完啦!
之后再接着上面的命令继续安装gtest就好了~
CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
set(CMAKE_CXX_STANDARD 11)
project(demo)
find_package(GTEST REQUIRED)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} ${GTEST_LIBRARIES})
main.cpp
#include <iostream>
#include <gtest/gtest.h>
int add(int a, int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
// case1
TEST(test, c1) {
EXPECT_EQ(3, add(1, 2));
EXPECT_EQ(12, add(2, 6));
}
// case2
TEST(test, c2) {
EXPECT_EQ(-1, sub(1, 2));
}
GTEST_API_ int main(int argc, char ** argv) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
输入命令:
cmake .
make
./demo
嘤嘤嘤,又出现新的问题~
找了好久都没找到怎么解决,后来发现原来上面就有报错了
然后,就随便去新建了个文件夹,把文件拷贝进去就成功啦~