问题标签 [cflags]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 错误:“CFLAGS”没有命名类型
这是我的生成文件:
当我运行一个脚本时,例如,这个(ex3.c
):
我收到以下错误:
mysql - 在 Autoconf M4 脚本中确定目标架构
我目前正在使用一个需要构建 i686 和 x86_64 库,在同一系统上构建和安装它们的系统 - 这是一个遗留项目,它混合了通常以 64 位运行的较新的 ABI 不可知代码,因为它可以使用额外的内存,以及一些在为 64 构建时会中断的旧代码。
对于 99% 的链接库,这可以正常工作;在 autoconf、rpm-build 和 pkg_config 之间,它可以毫无问题地找到正确的库。不幸的是,有一个主要的例外——MySQL。他们没有提供 pkg_config 脚本,而是拥有自己的自定义 mysql_config 脚本,并且它不尊重目标 ABI - 它只报告最后安装的值。
因此,虽然我们得到了移植到 64 位上正常运行的最后一个代码,但我试图通过编辑 Autoconf MySQL 配置脚本(官方 GNU 脚本,ax_lib_mysql.m4)来后处理报告的 CFLAGS 和LDFLAGS 取决于目标平台。这就是问题的症结所在——Autoconf M4 中是否有一种很好的方法来检测您是在为 32 位还是 64 位目标构建?确切的 ABI 无关紧要——主要是知道我是否需要链接到 /usr/lib 或 /usr/lib64。
很抱歉为一个句子的问题写小说,但我在网上找到了很多地方,人们问如何做到这一点,但从未得到答案,因为每个人都忙着告诉他们他们不应该这样做,因为它会使构建过程更加脆弱,所以我试图设置一点。我知道这是一个可怕的 hack(非常欢迎使用替代方法!),但我需要一些方法来解决这个问题,以在过渡期间保持系统构建。
ldflags - CFLAGS 和 LDFLAGS 与 CPATH 和 LIBRARY_PATH
在这个线程中
有人说 CFLAGS 和 LDFLAGS 不适用于每个配置脚本。为什么?我想对此有更多解释,而不仅仅是声明;)在什么情况下有效,在什么情况下无效?原因是什么?
他(接受的答案)还提到您应该改用 CPATH 和 LIBRARY_PATH 。CFLAGS 和 CPATH 有什么区别?同样,LDFLAGS 和 LIBRARY_PATH 有什么区别?
最后一个问题:当我使用 LDFLAGS = 不管时,我不会覆盖以前可能由开发人员自己制定的 LDFLAGS 定义吗?语法不应该类似于 ./configure LDFLAGS+=/myPath 吗?
c++ - 对稍有改动的程序重用稍有改动的 Makefile 会出错
我为一个名为程序 B 的新程序制作了一个适用于程序 A 的 makefile 的副本。为了简单起见,程序 B 与程序 A 具有所有相同的包含指令。对新 makefile 所做的唯一更改是对目标文件列表和创建的可执行文件的名称。我还可以确定编译错误不是由 main() 中的任何内容或程序 B 的任何函数引起的。但不知何故,当我使用 make 命令时出现错误:
在我的 makeflie 中,我有以下相关行:
感谢您的帮助,因此在此先感谢您。我对makeflies了解不多,所以我只是想有效地重用代码。
编辑
程序 A 和程序 B 都具有相同的包含指令
程序 B 本质上可以认为是 this 加上一个空的 int main(){ return0;},而程序 A 确实包含很多代码并且已经工作了很长一段时间。
c - 如何在“make install”之后更改 VAR 名称而不会出现未声明的错误?
我的configure.in
文件有:
Makefile.am
有:
C文件是:
当我执行“make install”时出现错误
因此 VAR 的名称变为 yo,但未声明。我的目标是打印哟,但是如何解决这种情况呢?
node-gyp - 每个源的 cflags
gyp 有没有办法只为某些源文件启用某些 cflags?
在此错误的上下文中,我想找到一种方法来编译一些启用了某些 SSE 功能的代码,而其他代码(在运行时检测所述功能的可用性并提供回退)不应该使用这些功能在优化过程中。
通常,我发现 node-gyp 文档完全不够。
autotools - 在 configure.ac 中更改 *FLAGS 与使用子项目进行缓存
假设我希望CFLAGS
在我的configure
脚本中添加一个特定的标志,它应该传播到所有子项目的configure
脚本:
这在configure
被简单调用时有效。一旦发生以下情况之一:
CFLAGS
configure
调用时在环境中导出CFLAGS
在configure
命令行上设置- 使用缓存 (
configure -C
)
这种方法不再有效。在前两种情况下,导出CFLAGS
的内容被简单地忽略;在最后一个中,configure
失败了
配置:错误:在上一次运行中未设置“CFLAGS”
我已经设法通过以下方式可靠地工作:
考虑到有多个子项目,并且*FLAGS
可能需要像这样设置多个变量,这还不错,但仍然不是最优的。有没有办法通过只破解顶层来完成这项工作configure.ac
?
cmake - 获取通过命令 add_definitions() 和 add_compile_options() 设置的 C/CXX FLAGS
在我的CMakeLists.txt
中,全局 C 和 CXX 标志是使用命令add_definitions()
和
add_compile_options 设置的。
多次尝试检索 C/CXX 标志:
${CMAKE_C_FLAGS}
并且${CMAKE_CXX_FLAGS}
是空的${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE}}
是原始的默认 CMake 值
(例如-g
forCMAKE_C_FLAGS_DEBUG
)${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}}
和上面一样get_cmake_property(def COMPILE_DEFINITIONS)
是NOTFOUND
get_cmake_property(opt COMPILE_OPTIONS)
也是NOTFOUND
我想将我的自定义 C/CXX 标志传递给基于以下内容的外部项目./configure
:
(1)如何获取add_definitions()和add_compile_options设置的编译标志?
注意:我使用 CMake 版本 3.3.2
在写这个问题时,我意识到我想知道另一个问题:
我使用ccache
但./configure
脚本看不到我的环境变量CC
,CXX
当我这样设置它们时:
(2)以上这些 CMake 语句是否正确?
哎呀我又问了一个问题:
我从同一个变量中检索LDFLAGS
and 。
(3)是否需要设置另一个 CMake 变量?ARFLAGS
${CMAKE_STATIC_LINKER_FLAGS}
ARFLAGS
tcl - 错误:尝试 ./configure && make package nap 时使用 -fPIC 重新编译
我正在尝试为 tcl 配置和制作安装包 nap6.4,但它在“制作”期间失败并出现以下错误:
所以我被告知要使用 -fPIC 重新编译,我在终端通过以下方式进行了编译:
但这不起作用。我也尝试过使用 --disable-shared、make clean 和
以及其他不工作的 CFLAGS 版本。
所以我想知道如何使用 -fPIC 重新编译?我在这里缺少一些特殊的语法吗?
json - json 请求中的 404 错误 - 传递了所有可能的标头,但没有运气
我正在尝试登录一个应用程序,它有文本/html 和一些应用程序/json。我能够从上一个请求登录到应用程序,但我相信 json 正在加载一些额外的数据,它给了我一个 404 错误。我尝试添加如下所示的标题,但仍然没有运气。我附上了一张快照,以显示正在加载的不同请求标头。
此外,我无法关联 cflags、umps 会话 ID,因为我不确定它们来自哪里。我没有在服务器响应中看到。只是标题。有人可以在这里给我一些信息吗?
如果我遗漏了什么,请告诉我。