CLion 怎么链接外部库 比如boost

CLion 怎么链接外部库 比如boost,第1张

CMakeLists.txt 决定了 CLion 对项目的所有配置,一定要修改它。

为了便于跨平台(甚至只是跨机器),不建议指定具体的库目录,而是使用 find_package 让 CMake 去寻找这个库。当然 find_package 没有带对应的 .cmake 模块的时候,可以用 pkg_config 代替。

对于 boost,只要使用 find_package 即可。如:

set(Boost_USE_STATIC_LIBS ON)

find_package(Boost 1.57.0 COMPONENTS log thread system regex REQUIRED)

就是指定了使用静态链接的 boost,并尝试寻找 boost 的 log, thread, system, regex 这些库。

然后再使用 target_link_libraries(MyTarget ${Boost_LIBRARIES}) 就可以指定让 MyTarget 这个目标链接到找到的库。

1、先要安装编译器notepad++只是一个文本编辑器,本身没有编译C/C++的功能。所以要想先配置,就要先装上一个编译器。我是用的是MinGW(但是它不只是一个编译器这么简单,可以简单地理解成是一个开发工具包,我们只是利用了其中的一些开发工具)。2、设置环境变量什么是环境变量,我也不清楚,不懂的可以自己去查一下资料,回头我也去脑补。我们先设置环境变量。在(系统属性-->高级-->环境变量-->系统变量中)(以下目录都根据自己的电脑MinGW所在位置不同而改变)在PATH的值中加入“D:/MinGW/bin”(如果没有就新建一个PATH)。如果PATH中还有其他内容,需要用英文状态下分号进行分割。这是寻找gcc编译器的路径。(这一步中PATH的值根据你的MinGW安装的路径设定,要能够访问的gcc编译器,也就是MInGW安装目录里面的bin文件夹)新建LIBRARY_PATH变量,在其值中加入“D:/MinGW/lib”。这是标准库存放的路径。新建C_INCLUDE_PATH变量,在其值中加入“D:/MinGW/include”。这是Include查找头文件的路径。设置结束之后,在cmd控制台窗口下面,输入gcc-v。若已经成功安装好,会显示gcc的版本信息。3、设置notepad++环境变量设置成功之后,接下来我们就是设置notepad++,为其加上编译,运行,甚至调试的功能,我是添加了编译和运行两个。打开notepad++,选择菜单栏的“运行》运行”,或者直接按“F5”,可以看到如下:然后再一次输入下列命令编译:cmd/kg++.exe-g-W-Wall-o$(CURRENT_DIRECTORY)/$(NAME_PART).exe"$(FULL_CURRENT_PATH)"&PAUSE&EXIT然后点击“保存”,并自定义快捷键。运行:cmd/k$(CURRENT_DIRECTORY)/$(NAME_PART).exe"$(FULL_CURRENT_PATH)"&PAUSE&EXIT然后点击“保存”,并自定义快捷键。注意事项:引号的使用是为了适用于文件名或者路径中带有空格的情况,一定不能省略。&PAUSE含义是命令运行后暂停等待键盘 *** 作&EXIT含义是完成后退出运行窗口,回到notepad++gcc的bin目录已经之前在系统环境变量中进行过设定,否则需要补全gcc命令的绝对路径。(很简单,将"g++.exe"换成"D:/MinGW/bin/g++.exe",还是要参照你安装的路径)

有两种方式(重点讲后面一种):

1.使用OpenCV Java API。

OpenCV安装路径"F:\OpenCV-2.3.1-android-bin"下有两个文件夹,

将文件夹"OpenCV-2.3.1"拷贝到你的Eclipse工作空间所在的目录,也就是在你的项目的上一级目录中,然后导入到工作空间中,在Package

Explorer中选择你的项目,单机右键在d出菜单中选择Properties,然后在d出的Properties窗口中左侧选择Android,然后点击右下方的Add按钮,选择OpenCV-2.3.1并点击OK,

此时,展开你的项目树,你可以看到新加了一个OpenCV-2.3.1_src目录,如下图,那么就是正确添加了OpenCV Java API,否则就是你放置OpenCV-2.3.1的目录路径不正确。

然后就可以在你的Java源文件中导入OpenCV的API包,并且使用OpenCV API了,OpenCV API的包的形式如下:

Org.opencv.(OpenCV模块名).(OpenCV类名)

例如:

Org.opencv.core.Mat

2.利用JNI编写C++ OpenCV代码,通过Android NDK创建动态库(.so)

新建一个工作空间,例如"TestOpenCV",在Window->Preferences中设置好Android SDK的路径。

然后新建一个Android项目,Build Target选择Android2.2,命名为"HaveImgFun",活动名改为HaveImgFun,Package name中填写com.testopencv.haveimgfun,最后点击finish。

如同使用OpenCV

Java

API那样,将OpenCV-2.3.1文件夹拷贝到与工作空间同一级目录中;另外,将"F:\OpenCV-2.3.1-android-bin\samples"下的includeOpenCV.mk文件拷贝到和项目HaveImgFun同一级目录中:

(上面这个各个文件夹和文件的放置很重要,因为OpenCV-2.3.1下的OpenCV.mk中有很多相对路径的指定,如果不是这样放置,在NDK生成动态库时可能会报文件或文件夹无法找到的错误)

选择Package Explorer中你的项目,右键选择new->folder,新建一个名为jni的文件夹,用来存放你的c/c++代码。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11828878.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存