c - 构建 makefile/部署的 linux 方式 - 开发?

标签 c linux

我有一个问题:许多存储库不包含其中包含调试符号的库。所以这意味着我必须自己安装它们,并且通常它们安装到与我从我的发行版中获得的库不同的目录中。 显然(?)我想使用剥离的、优化的库来运行我的实际应用程序,但是现在我的 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/

相关文章:

linux - 在 makefile 中处理管道及其退出状态的最佳方法

android - 文件权限更改每次重新启动的旧状态

c - VkApplicationInfo 有什么意义?

c - 打印笑脸

c - 单个前钉可获得的最大尺寸

java - System.getenv 不会在 Amazon Linux 上选择任何系统变量

python - 安装 screenkey 时出错?

转换为函数指针时出现编译器错误

c - (C 中的内联汇编)汇编程序消息 : Error: unknown pseudo-op:

c - 我需要有人为我解释二叉树