CCDT项目依赖库的安装OSG+wxWidgets+GC+Efficient RANSAC+MersenneTwister
来源:互联网 发布:c语言基础课程教学视频 编辑:程序博客网 时间:2024/06/07 22:31
最近实现的论文是个很大的工程,要先编译安装各种库。幸亏CGAL和boost是之前已经装好的。剩下主要比较麻烦的就是OSG(OpenSceneGraph)。因为64位的库计算能力更强,所以这里所有的库都用的是64位的。
1,OSG的安装
参考博客http://www.cnblogs.com/eaglezhao/archive/2011/07/12/eaglezhao.html 但是这个是OSG3.0版本,现在OSG已经更新到3.4了。
从官网下载源码 http://www.openscenegraph.org/index.php/download-section/stable-releases
或者prebuilt binaries http://downloads.alphapixel.org/
这个OSG是有第三方库的,我因为觉得第三方库对我没有特别大的用处,所以没有考虑,直接在官网下载源码,用cmake得到sln文件,在VS中进行debug/release build. 编译时间非常久,大概要两个小时,然后得到lib文件夹,bin文件夹和include文件夹。
然后在vs中新建win32 console project,然后进行property的配置,分别将inclue,bin,lib的path写入project property,然后将osgd.lib;osgGAd.lib;osgDBd.lib;osgUtild.lib;osgViewerd.lib加入Additional Dependencies。
然后我用简单的程序进行测试,程序如下。
#include<osgViewer/Viewer>
#include<osgDB/ReadFile>
int main(int argc, char **argv)
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
return viewer.run();
}
遇到一个bug,显示A dependent dll was not found。说是osgDBd.dll is missing,发现应该是没有配置环境变量导致的,所以系统会找不到dll文件。解决这个问题有三种方法: 1,要么在系统中输入environment variables。2,要么把库文件搬到win32文件夹中,因为这是系统默认的搜索路径。3,将dll文件放到project的code文件夹下,project运行时会自动搜索。我个人觉得最好用的是第一种方法。需要配置的环境变量截图如下。然后示例程序多半就可以正常运行了。
OSG_ROOT = C:\OpenSceneGraph\3.4.0\msvc2013-32bitOSG_BIN_DIR = %OSG_ROOT%\binOSG_INCLUDE_DIR = %OSG_ROOT%\includeOSG_LIB_DIR = %OSG_ROOT%\lib
We must add to the Path
variable: %OSG_BIN_DIR%
Graph Cut Optimization Library, 算法来自Boykov的论文“An experimental comparison of min-cut/max-flow algorithms for energy minimization in vision”。论文作者有实现这个算法,可到他的主页上找:http://vision.csd.uwo.ca/code/ 。此外还有这个库的python版本和matlab wrapper版本: GCMex。这里用的是一个C++库,由Ondrej Danek完成,库的源码可以在他的主页找见http://www.ondrej-danek.net/en/research。
安装库的过程遇到两个问题。第一个是LINK error 1112,是由于Linker-》command line-》 additional options忘记加machine:/X64。第二个问题是在我用cmake生成了sln,然后在vs中进行安装的时候,总是报错,说是install dll文件的时候找不到gc project生成的dll文件,我以为是project哪里有bug,但是build的过程中并没有报错,最后开始怀疑生成路径,才发现原来dll文件被放到了一个奇怪的文件夹中。
然后配置Gc就同osg一样,把include路径,lib路径,dll路径都放入,然后把lib放入。最后把路径加入系统变量中。
3,配置wxWidgets
http://www.cnblogs.com/sqxy110/p/4897494.html
http://blog.csdn.net/yapingxin/article/details/51614388
我直接在官网下载的预编译库,然后主要跟着第二篇博客配置的VS project。这个库比较麻烦,除了常规的bll,lib,include文件夹的配置外,还需要额外配置一些参数,比如preprocessor definition。
我用的预编译的库,然后报了160个错,说是很多变量没有define, 我把错误拉到最下面显示是找不到setup.h,然后我在一个库文件里更改了路径之后,这些错就全都没了。但是就冒出来了一个更致命的错LNK2019:Module Type(X86) conflicts with Target Type(X64)。 这个错是来自wxbase31.lib,看起来像是我的库文件是32bit的,但是我在想要编译64bit。但是我明明下载的是64 位的库,所以我需要再检查一下。后来发现自己一时疏忽下成了32 位的库文件,重新下了库文件之后,这些error果真都没有了。但是我又遇到十几个LNK2001的错,后来发现是少加了一个preprocessor definition:WXUSINGDLL。
四、Efficient RANSAC
我在http://cg.cs.uni-bonn.de/en/publications/paper-details/schnabel-2007-efficient/ 下载了软件,然后编译了64位库,这个库只生成了静态lib库文件。但我后来用官网提供的test code的测试的时候,遇到一个bug,然后我发现其实CGAL里面现在已经对应的类了,所以其实不用自己安装这个库了,详情见下面链接http://doc.cgal.org/latest/Point_set_shape_detection_3/index.html
五、MersenneTwister
这是个生成随机数的C++库,已经好久不更新了,我暂时没有装。
- CCDT项目依赖库的安装OSG+wxWidgets+GC+Efficient RANSAC+MersenneTwister
- wxWidgets库的依赖顺序
- centos安装audacity的依赖wxWidgets报GSocket错
- OSG学习笔记01:OSG的安装
- wxWidgets的下载与安装
- wxWidgets笔记_1_linux环境下wxwidgets的安装与配置
- MersenneTwister算法
- 编译安装 wxWidgets 2.6.3 (如何在一个系统中安装多个版本的wxWidgets库
- wxWidgets 安装
- aclocal安装依赖的库
- aclocal安装依赖的库
- pwntcha库的安装依赖
- OSG安装
- [osg]OSG的分格化
- wxWidgets在windows & VC++下的安装
- inux下wxWidgets(wxWindows)的安装
- wxWidgets的下载、安装和编译
- wxWidgets的下载、安装和编译[转]
- linux软件安装
- singalton懒汉模式饱汉模式饿汉模式对比
- web服务器ftp建设(含脚本)
- Apache Zeppelin 中 Hive 解释器
- RXANDROID学习笔记
- CCDT项目依赖库的安装OSG+wxWidgets+GC+Efficient RANSAC+MersenneTwister
- Python学习笔记(16)-账户管理器Version1.0
- ipad/iphone配置VPN
- [RK3288][Android6.0] 一个例子看MediaCodec使用流程
- Android 5.0 Phone 模块介绍
- SVD奇异值分解几何意义及应用
- 函数积累
- 从IT宅到充实人生,光有高工资、高价值,能找到媳妇吗?(舞步学院吐血推荐)
- 为什么if中null要写在前面?