- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
典型的 makefile 通常使用内置变量 CFLAGS
、CXXFLAGS
、CPPFLAGS
等1设置传递给 C、C++ 或其他编译器/工具的标志。原则上,有时这甚至可以让您完全避免编写编译配方,因为各种内置规则使用这些标志。
一般来说,makefile 可能会将编译代码所需的内容添加到 FLAGS
变量中,例如包含目录、指示要使用哪种语言标准的参数等等。这些变量还可能包括“可选”或“默认”参数,例如优化级别、警告级别以及其他可以有效更改或删除的设置。
由于 CFLAGS
和字段是“众所周知的”变量,因此它们显然也是最终用户的配置点。例如,如果默认情况下项目编译时没有调试信息,则 make
命令行上的 CFLAGS=-g
预计会导致 -g
添加到 $(CC) 编译器命令行,从而生成调试信息。同样,对于最终用户可能想要控制的其他选项,例如优化级别、gcc 上的 -march
设置等。
但是,这两种用途对我来说似乎不兼容。如果用户覆盖 $(CFLAGS)
,他们将删除如上所述的任何内部“必需”标志,并且项目可能无法编译或可能编译不正确。
有处理这个问题的最佳实践吗?对于像 $(CC)
这样的“单值”变量来说,实际上不会出现同样的问题,因为它们通常只有一个值:在本例中,是要使用的 C 编译器。如果用户覆盖它,您就使用它们的值。像 $(CFLAGS)
这样的东西原则上是一个值列表,其中一些是内部的,不应该被覆盖,其他的则用户可能想要覆盖。
直观上,解决方案似乎是在 makefile 中将 $(CFLAGS)
和 friend 保留为空且未使用,更喜欢使用 CFLAGS_INTERNAL
作为 makefile 内的参数,然后将两者都放在命令行上。不过,我很好奇是否有最佳实践,或者我是否遗漏了一些明显的东西。
1 对于这个问题的其余部分,我通常会简单地引用 $(CFLAGS)
,并理解这只是整个系列的方便代表。已知的编译器标志变量,例如 $(CPPFLAGS)
、$(CXXFLAGS)
等。
最佳答案
在使用 debuginfo 包构建 RPM 时偶然发现了同样的问题。
生成调试信息的要求是在 CFLAGS
中传递 -g
,同时保留软件在其 Makefile< 中包含的任何
.CFLAGS
/
因此,如果您想向 CFLAGS
添加一些额外的位,而不覆盖 Makefile
中存在的位,您只需使用 CFLAGS
作为环境变量。但前提是相关的 Makefile
使用 CFLAGS += ...
表示法。
例如,假设您的软件的 Makefile
具有:
CFLAGS += $(ARCH) -O3 -std=gnu11 -Wall ...
要使用所有这些标志和 -g
构建它,您将执行以下操作:
CFLAGS='-g' make
请注意,将其作为参数传递给 make
将不起作用,如:make CFLAGS='-g'
是错误的,因为它会覆盖内部CFLAGS
。
有关 pass -g
for building debuginfo packages properly 的解决方案的更多信息
这里是 make: appending to variables 的引用.
关于makefile - 允许用户覆盖 CFLAGS、CXXFLAGS 和 friend ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51606653/
我想知道将来对我来说最简单的方法是什么,可以使查询既有效又不那么复杂。 我应该像这样保存双向关系吗 from_id=1, to_id=2from_id=2, to_id=1 或者只创建一个唯一的行 f
假设您有一个拥有十亿用户的社交网络。在每个用户的页面上,您想要显示该用户的 friend 数、 friend 的 friend 等等,最多五度。友谊是相互的。计数不需要立即更新,但它们应该是精确的。
public void notMyFriend(Student student1) { System.out.println("Friends who are not my frien
我有如下3个表格 用户 - id integer primary_key - user_name friend - id autoincrement primary_key - user1 integ
如何从 Friends 表中获取 friend 列表以及我 friend 的 friend 数(不包括我的 friend 数) friend 表"tbl_users_friends 字段 1:id字段
我的 MySQL 表结构是这样的。 USER int id varchar username FRIEND_LIST int user_id int friend_id 对于每个 friend 关系,
假设 a,b,c 和 b,d,e 和 c,f,g 和 a,e,g,h 是 friend 。所以 获取共同好友 b/w a&b: MATCH (me:User {username:'a'}) -[r:F
我正在开发“可能的 friend ”功能。我需要显示所有不是我 friend 的 friend 的 friend ,也不要发送我或没有我的待处理请求 FRIENDSHIPS user_id frien
如果两个用户是 friend ,我在“ friend ”表中有一个条目,如下所示: table: friends ------------------------ uid1
我有一个 friend 表,用于跟踪数据库中的关系 - 我将一个查询与子查询放在一起,该子查询从 friend 的 friend 那里获取个人资料信息 我的 friend 表如下所示 - id 双向出
我想结交 friend 的 friend 的 friend 。我得到了结果,但我不确定我的查询是否正确。我正在使用嵌套选择。 我的问题是: 查询是否正确? 我如何使用 join 执行此查询? 这是我的
假设我有一个包含 friend 属性的用户对象。这个 friends 属性是其他用户对象的数组,因此是你的 friend 。找到你 friend 的 friend 但不是你 friend 的最快算法是
我想结交我的 friend 以及 friend 的 friend ,但仅限于二级 friend 我的表结构是这样的 user_id friend_user_id 1 2 1
为了了解使用 Neo4J 建立 friend 关系的优势,我在 MySQL 数据库上创建了一张用于 Persons 的表(“Persons”,20900 个数据集): id | name --
假设我有一个名为“ friend ”的表,对于每个友谊,我添加两个条目。例如,如果用户 1 和 2 是 friend ,我们将有: uid1 uid2 ---------- 1 2 2 1
在我的图形数据库中,我有 Twig 和树叶。分支可以“包含”叶子,分支可以“包含”分支。 如何使用 Gremlin 找到与给定分支直接或间接相关的所有叶子? 我让这个在 Cypher 中工作: STA
我正在尝试使用 iPhone Facebook SDK 获取我 friend 的 friend 列表。我尝试了一种使用 FQL 和 Graph API 的方法,但在这两种情况下我都遇到了错误: "Ca
我有这个 MySQL 表: 假设我以用户 1 的身份登录,正在浏览用户 2 的个人资料。由于我们是共同的 friend (1 是 2 的 friend ,2 是 1 的 friend ),我需要回应“
我想得到我 friend 的 friend 不是我 friend 的 friend 。我有一张这样的 table :用户 friend (idUser,idUserFriend) 我在想这样的事情:
我有这个 Cypher 查询... match (p:Person{userid:8432})-[r:friends_with]->(p1:Person)-[r2:friends_with]->(p2
我是一名优秀的程序员,十分优秀!