LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1847|回复: 2

[求助]linux下的程序开发可有debug和release之分?

[复制链接]
发表于 2006-9-8 14:43:02 | 显示全部楼层 |阅读模式
是不是在编译时加 -D debug 生成的就是debug版本?
不加的就是release版本?有进行优化吗?

另外问一个问题,linux下的c++代码里可有类似这样的语句?:
#pragma comment(lib,"*.lib")   // *是某lib文件名
在gcc里是不是只能通过编译命令实现?如果这个lib是个动态库dll的导入库呢?该怎么做?

谢谢!
发表于 2006-9-8 19:51:29 | 显示全部楼层
对于使用autotools建立的项目,我一般采用不同的CFLAGS来指定是debug还是release版本
当然还的工程中的configure提供现成的选项(--enable-optimize --enable-debug ...)

如果他不提供现成的选项,我采用这样来分别产生用于调试的程序与优化的程序
debug版本编译:
  1. cd abc-0.1
  2. mkdir bld-debug
  3. cd bld-debug
  4. CFLAGS='-g' CXXFLAGS='-g' ../configure
  5. make all
复制代码
release版本编译:
  1. cd abc-0.1
  2. mkdir bld-release
  3. cd bld-release
  4. CFLAGS='-O3 -DNDEBUG' CXXFLAGS='-O3 -DNDEBUG' ../configure
  5. make all
复制代码

关于,
#pragma comment(lib,"*.lib")
我用autotools来解决链入哪些库(AC_SEARCH_LIBS宏)
好像无法在源代码中指定链入库。
回复 支持 反对

使用道具 举报

发表于 2006-9-8 23:06:36 | 显示全部楼层
标准用 -DNDEBUG 指定非调试版—— assert 宏的行为就取决于这个宏。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表