09 2013 档案

摘要:C++的开发效率低是众所周知的,原因比如有:语言复杂度高编译效率低工具链不够完整高效(尤其是linux下)另外一个恐怕是不少编译错误让人摸不着头脑,今天碰到一个,举个例子: 1 #include 2 3 enum LogLevel { 4 ERROR, 5 WARN, 6 INFO, 7 DEBUG, 8 TRACE 9 }; 10 11 12 int main() 13 { 14 printf("%d\n", ERROR); 15 } 16 编译错误为:$ g++ -DDEBUG test.cpp test.cpp:7... 阅读全文
posted @ 2013-09-07 23:53 lzprgmr 阅读(3480) 评论(3) 推荐(0) 编辑
摘要:动态库的麻烦之处在于 - 如果你的程序使用了成百上千个动态库,你的程序在运行时如何找到这些动态库?一般有三个方法:一、设置LD_LIBRARY_PATHexport LD_LIBRARY_PATH="/path/to/lib"直接手工设是不可能完成的任务,因为你也知道有很多path (多不是问题,问题时你得知道这些path),所以一般需要在由编译系统来自动产生这些path,并放到一个runscript中:#set pathexport LD_LIBRARY_PATH=/path/to/lib1export LD_LIBRARY_PATH=/path/to/lib2:$LD_ 阅读全文
posted @ 2013-09-07 23:36 lzprgmr 阅读(1530) 评论(0) 推荐(0) 编辑
摘要:说到软件项目的依赖管理,可以从三个方面来考虑:一、由build system控制的dependency现在的build system,都支持一定程度上的dependency management, 比如make支持target之间的dependency,ant也支持其每个target之间的dependency(区别是make的每个非PHONY的target是个文件,make会检查输入与输出之间的timestamp来达到incremental build的效果,而ant则是对上一次build没有任何记忆,除了javac task支持incremental compile)上面的dependenc 阅读全文
posted @ 2013-09-06 09:13 lzprgmr 阅读(1328) 评论(0) 推荐(0) 编辑

黄将军