1

我目前遇到了这样的问题,实际上是由包维护者引起的,他们根本不认为某个预处理器定义在依赖项中所需的某个工具包包的版本 X 之前不可用(目前是在测试阶段)。它可以通过简单地#define在基本系统的头文件中添加一个附加项来修复,使项目再次编译正常。
但是,如果我没有系统的 root 访问权限怎么办?我还可以#define new_macro "i am from the future"在编译时添加一个,例如到configure吗?
在阅读此事时,我认为它可能与DEFS环境变量一起使用,但显然这并不意味着用于 C 预处理器指令。
那么这完全可以实现吗?

4

1 回答 1

0

谢谢,但不幸的是,一个大问题是引号中的字符串

创建一个文件,例如在~/somedir/mycompiler内容:

#!/bin/sh
gcc -Dnew_macro="i am from the future" "$@"

添加可执行权限chmod +x ~/somedir/mycompiler,然后将其作为参数传递给configure

./configure CC="$HOME"/somedir/mycompiler ...

反过来,配置脚本将使用该脚本编译所有内容,-D到处传递,引号将被正确解析sh

于 2021-08-30T17:58:53.360 回答