我有一个问题:许多存储库不包含其中包含调试符号的库。所以这意味着我必须自己安装它们,并且通常它们安装到与我从我的发行版中获得的库不同的目录中。 显然(?)我想使用剥离的、优化的库来运行我的实际应用程序,但是现在我的 makefile 已经编写好了,因此它们可以与自定义编译的库(包括 dbg 符号)一起使用...例如:
-I/usr/local/include/whatever 现在是正确的路径,但在部署时我认为我需要 -I/usr/include/whatever
这只是一个简单的示例,但它显示了我的开发机器和部署机器上的一切有何不同。人们肯定想出了一些解决方案来解决这个问题吗?你能帮我吗? (除了明显的事情,比如将 if 写入 makefile,那是丑陋且容易出错的)
我只是不明白怎么会有人这样工作。唯一的解决办法是总是自己编译所有东西..?
最佳答案
调试或发布构建通常不是在 Makefile 中决定的,而是由配置脚本决定的。也就是说,您有一个源代码树和两个构建,一个使用库的调试标志(-O0、-ggdb)构建调试构建(通过 -I、-L,可能设置 rpath),另一个构建作为使用生产标志和正常环境的生产构建。
典型的设置如下:
svn co my_source_url source
mkdir debug production
( cd debug && ../source/configure DEBUG_OPTIONS; )
( cd production && ../source/configure PRODUCTION_OPTIONS; )
关于c - 构建 makefile/部署的 linux 方式 - 开发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8066798/