08_rlCoachKin自主编译,调试

为了知道参数的意思,以及为了从头建立一个项目,我从使用QTCreator来单独建立项目(当然也可以直接使用源代码中建立好的VS项目)。

其实也推荐

VS2010调试

如果是用自带的VS项目,那么我们需要把依赖的动态库添加到PATH或者把dll拷贝到运行目录:

E:\01_workspace\05_RL\rl-0.6.2\build\demos\rlCoachKin\Debug

clipboard

我们自己编译了之后,调试运行时,打开RL库的源文件,打断点也是可以进入调试的。这样方便我们开发调式。

不管是QT还是VS也都适用。


QT项目:

QT项目建立好之后多半启动会assert:那是因为eigen的问题,需要添加一个宏即可。

clipboard[1]

QT项目如下(可以修复这个assert):

TEMPLATE=app
CONFIG+=console
CONFIG-=app_bundle
QT+=opengl
QT+=network

#如果链接报错:
#LNK2038:检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项:值“0”不匹配值“2”(ConfigurationDelegate.obj中)
#则是因为:Debug使用了Release的库文件。

INCLIUDE_ROOT=$$quote(E:/ProgramFiles(x86)/rl-0.6.2/include)
LIB_ROOT=$$quote(E:/ProgramFiles(x86)/rl-0.6.2/lib)
PRJ_ROOT=../
DESTDIR=$$PRJ_ROOT/bin/

CONFIG(debug,debug|release){
LIBS+=-L$$LIB_ROOT/-lrlkind-lrlsgd-lrlxmld-lcoin3d-lsoqt1d-llibxml2
}else{
LIBS+=-L$$LIB_ROOT/-lrlkin-lrlsg-lrlxml-lcoin3-llibxml2
}

#DEFINES+=COIN_NOT_DLL
#DEFINES+=SOQT_NOT_DLL

DEFINES+=COIN_DLL
DEFINES+=SOQT_DLL
DEFINES+=M_PI=3.14159265358979323846

#解决Eigenabort的问题
#参考:http://eigen.tuxfamily.org/dox-devel/TopicUnalignedArrayAssert.html
DEFINES+=EIGEN_DONT_ALIGN_STATICALLY


INCLUDEPATH+=$$INCLIUDE_ROOT
INCLUDEPATH+=$$INCLIUDE_ROOT/boost-1_52




SOURCES+=$$PRJ_ROOT/ConfigurationDelegate.cpp
HEADERS+=$$PRJ_ROOT/ConfigurationDelegate.h
SOURCES+=$$PRJ_ROOT/ConfigurationModel.cpp
HEADERS+=$$PRJ_ROOT/ConfigurationModel.h
SOURCES+=$$PRJ_ROOT/MainWindow.cpp
HEADERS+=$$PRJ_ROOT/MainWindow.h
SOURCES+=$$PRJ_ROOT/OperationalDelegate.cpp
HEADERS+=$$PRJ_ROOT/OperationalDelegate.h
SOURCES+=$$PRJ_ROOT/OperationalModel.cpp
HEADERS+=$$PRJ_ROOT/OperationalModel.h
SOURCES+=$$PRJ_ROOT/rlCoachKin.cpp
SOURCES+=$$PRJ_ROOT/Server.cpp
HEADERS+=$$PRJ_ROOT/Server.h
SOURCES+=$$PRJ_ROOT/Socket.cpp
HEADERS+=$$PRJ_ROOT/Socket.h


但是运行会abort,居然是构造出问题了。其实是Eigen内部优化的abort,去掉即可:
posted @ 2016-07-05 13:05  Lee'sEngineer  阅读(365)  评论(0编辑  收藏  举报