2011年2月24日

C/C++开发

一般采用系统默认配置就可以了,但有时候需要优先使用自己特定的链接库或者头文件,
可以使用下面的GCC命令来确认当前的搜索路径等配置参数。
【gcc -print-search-dirs】
【cpp -v】

有两个重要的变量【C_INCLUDE_PATH】和【CPLUS_INCLUDE_PATH】,设置以后就优先于系统默认的头文件搜索顺序。
还有就是通过设置环境变量【PATH】和【LD_LIBRARY_PATH】来改变command和链接库的默认搜索顺序。
补充一下,系统默认的链接库设置文件为【/etc/ld.so.conf】,修改此文件或者添加/删除其中的库文件以后需要用【ldconfig】使其生效。

制作动态连接库的时候,会用到下面的工具。
【nm --dynamic --demangle YourLibrary.so】

内存泄漏等问题最让人头疼,检测工具除了大名鼎鼎的IBM的Purify,还有很多开源的工具,供参考(部分已经过时了):
mpatrol njamd valgrind dmalloc electric-fence memprof memwatch leaktracer libgc6

在结合JNI使用时,需要指定so文件的路径,比如Tomcat5的情况下,在配置文件【/etc/tomcat5/tomcat5.conf】中添加【CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/lib"】

没有评论:

发表评论