08_rlCoachKin自主编译,调试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了08_rlCoachKin自主编译,调试相关的知识,希望对你有一定的参考价值。
为了知道参数的意思,以及为了从头建立一个项目,我从使用QTCreator来单独建立项目(当然也可以直接使用源代码中建立好的VS项目)。
其实也推荐
VS2010调试
如果是用自带的VS项目,那么我们需要把依赖的动态库添加到PATH或者把dll拷贝到运行目录:
E:\\01_workspace\\05_RL\\rl-0.6.2\\build\\demos\\rlCoachKin\\Debug
我们自己编译了之后,调试运行时,打开RL库的源文件,打断点也是可以进入调试的。这样方便我们开发调式。
不管是QT还是VS也都适用。
QT项目:
QT项目建立好之后多半启动会assert:那是因为eigen的问题,需要添加一个宏即可。
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,去掉即可:
以上是关于08_rlCoachKin自主编译,调试的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ:求值lambda表达式在调试时引发编译错误
谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js