我想调试我编写的程序。因此,我想用“-g -O0”链接它。当我编译(使用自动工具的Makefile)使用当使用-O0时,g ++停止在未定义的引用上
使CXXFLAGS = ' - g^-O0'
我得到一些错误:
的libtool:链接:G ++ -02 -g -O0 -I/opt/adolc-2.2.1/include -o oc_poly oc_poly-oc_poly.o oc_poly-oc_p2p.o -L/opt/ipopt-3.9.3/lib/coin -L/opt/ipopt-3.9 .3/lib/coin/ThirdParty -L/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2 -L/usr/lib/i386-linux-gnu/gcc/i686- linux-gnu/4.5.2 /。 ./../ .. -L/usr/lib/i386-linux-gnu /opt/ipopt-3.9.3/lib/coin/libipopt.so -llapack -ldl /opt/ipopt-3.9.3/lib /coin/ThirdParty/libcoinhsl.so /opt/ipopt-3.9.3/lib /coin/ThirdParty/libcoinblas.so /opt/ipopt-3.9.3/lib/coin/ThirdParty/libcoinlapack.so /opt/ipopt -3.9.3/lib/coin/ThirdParty/libcoinmumps.so -lpthread -lblas -lgfortran -lm -lgcc_s /opt/ipopt-3.9.3/lib/coin/ThirdParty/libcoinmetis.so -L/opt/adolc- 2.2.1/lib /opt/adolc-2.2.1/lib/libadolc.so -Wl,-rpath -Wl,/ opt/ipopt-3.9.3/lib/coin-W1,-rpath -W1/opt/ipopt-3.9.3/lib/coin/ThirdParty -Wl,-rpath -Wl,/ opt/adolc-2.2.1/lib -Wl,-rpath -Wl,/ opt/ipopt-3.9.3/lib/coin -Wl,-rpath -Wl,/ opt/ipopt-3.9.3/lib/coin/ThirdParty -Wl,-rpath -Wl,/ opt/adolc-2.2.1/lib oc_poly- oc_p2p.o:功能
OCP_P2P::get_bounds_info(int, double*, double*, int, double*, double*)': /home/christian/Dokumente/Uni/SA/ist/Berechnungen/Optimale Steuernug/IpOpt /oc_p2p.cpp:162: undefined reference to
OCP_P2P :: INF'
上述符号INF是在类定义OCP_P2P中定义的静态类成员。
如果我省略了CXXFLAGS或将它们设置为O1,O2,O3或Os的任何优化值,则链接工作得很好。我正在使用g ++ 4.5.2。
有人可以给我一个提示,这里有什么问题吗?我如何调试我的程序?
由于
基督教
你如何声明静态类成员? – Albert
'class OCP_P2P:public TNLP private: static const double INF = 2e19; }' –
你以前试过
make clean
吗? – thiton