问题标签 [xlc]

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.

0 投票
2 回答
610 浏览

gcc - 如何在可执行文件中写入所需的信息

我想知道您是否知道在可执行文件中写入注释或字符串的命令或方法。事实上,我已经这样做了,使用XLC编译器,#pragma comment(user, "string")但现在我必须更改为GCC,但有一个问题,在GCC下这#pragma是无法识别的。

我的问题是,您是否知道另一个#pragma可以在 gcc 下执行此操作的人,或者只是在我编译时恢复写入可执行文件中的信息的另一种处理方式。

谢谢, 埃泽基尔

0 投票
1 回答
2286 浏览

c++ - 使用 xlC 13.1.2 在 AIX 7.1 上编译 boost C++ 库

我正在尝试使用 xlC 编译器在 AIX 上编译 boost C++ 库的正则表达式部分并将其用作 64 位动态库,因为我需要比较几个 C++ 正则表达式库和内置解决方案的性能,并提升似乎是一个可行的候选人。

这是我的确切操作系统和编译器版本:

由于我没有 root 权限,因此我实际上无法安装 boost 库,我只是尝试将正则表达式部分编译为共享对象文件并获取我的测试应用程序所需的所有头文件。我尝试编译了最新的可用版本(1.59.0),还有1.55.0版本,因为我发现IBM已经发布了一个用于boost的源代码补丁:

http://www-01.ibm.com/support/docview.wss?uid=swg27042921

我使用以下命令编译 boost 并将标头和共享对象文件复制到我的开发文件夹:

我知道我可以添加--with-libraries=regex标志来仅编译正则表达式部分,但这与我的问题无关。

对于这两个版本,无论是否修补了 boost 源代码,我都会遇到同样的问题。

首先:我已经编译了一些库,并链接到我的简单测试应用程序,例如 PCRE C++ 正则表达式库。当我还尝试使用-lboost_regex编译标志链接 boost regex 库时,我收到以下错误:

这可以通过添加-brtl编译标志来解决,据我所知,只有在我尝试链接静态库时才需要它,所以在我看来 libboost_regex.so 实际上是 libboost_regex.a

第二:当我将这一行添加#include "boost/regex.hpp"到我的代码中时,我得到一个编译错误:

我的测试应用程序非常简单。这些是我的 Makefile 的内容:

这是我非常基本的测试应用程序的源代码:

如何解决这些问题?任何提示或建议将不胜感激。

0 投票
3 回答
131 浏览

c++ - Altivec——常量变量的加载

使用 altivec 从 const 指针加载的最佳方法是什么?

根据文档(和我的结果) vec_ld 不将 const 指针作为参数: http ://www-01.ibm.com/support/knowledgecenter/SS2LWA_12.1.0/com.ibm.xlcpp121.bg.doc /compiler_ref/vec_ld.html

因此,这样的事情会失败:

一个讨厌的解决方法是:

有一个更好的方法吗?谢谢你。

0 投票
1 回答
87 浏览

aix - xlc_r AIX 编译器的头文件中是否定义了 TRUE 和 FALSE?

我正在将一些代码从 AIX 移植到 Linux 我收到未定义符号 TRUE 和 FALSE 的编译错误。它们没有在源代码中定义,我无权访问 AIX 系统。这些符号是否在 xlc 编译器的头文件中定义?

0 投票
2 回答
888 浏览

postgresql - 如何从源代码构建 64 位版本的 libpq?

我正在尝试从 C 代码连接到 PostgreSQL,并且我必须从源代码构建 libpq,因为我在 AIX 上。我按照此评论中的步骤进行 操作,我在哪里可以获得 libpq 源? 但结果我得到了 32 位版本的 libpq.a,如何构建 64 位版本?

0 投票
1 回答
104 浏览

null - 在 AIX (xlc) 上将 char 与 NULL 进行比较是什么意思?

我正在将 AIX 代码移植到 Linux。我在 AIX xlc 编译器上遇到了一些将 char 与 NULL 进行比较的代码。相同的代码在 Linux 上会出现编译错误。

有将 double 与 NULL ( d != NULL) 进行比较的代码。

有人可以解释在 AIX(xlc) 上将 char 或 double 与 NULL 进行比较的语义吗?

0 投票
0 回答
83 浏览

c - 显式定义的枚举的 XL C 错误

在 AIX 上使用 XL C 编译头文件时,对于正在定义的枚举类型的每个枚举值,我都会收到 (1506-045 (S))“未声明的标识符”错误。对于我的一生,我在文件中找不到任何语法或逻辑错误,并且在其他文件中也有类似的枚举编译得很好。我能发现这个文件的唯一区别是枚举被明确定义为它们的数值。以下代码是编译器标记为错误的代码:

与其他枚举中隐式定义的值相反,它编译时没有错误:

有谁知道 XL C 在明确定义您的枚举值时是否有问题?编译器是否有影响这一点的标志或选项?我的印象是,明确定义您的枚举值虽然大多毫无意义,但在 C 语言中不是问题。错误的假设?

有没有人有过这样的经历?

更新

根据@kaylum 的要求,这里是完整的源代码,问题之前的行是:

以下是相应的编译器错误:

让我知道这是否真的更有帮助。

0 投票
1 回答
124 浏览

c - 由于#define 导致的 Aix 编译错误

“1506-221 (S) Initializer 必须是有效的常量表达式。”

在头文件编译期间的 aix 中,我遇到了这个问题。

在头文件中,源就像

#define A(b) (a+b)

像那样。

在源代码中使用此宏“A”(Ex:A(5))的任何地方都会引发上述错误。

谁能帮我解决这个问题?

编辑:

在头文件中

在源文件中

像这样 。

0 投票
1 回答
214 浏览

c++ - IBM AIX 中的内存分配使用 xlc 编译器失败?

在我的代码中需要分配几个大数组。

但是,当我尝试使用 IBM xlc_r 时:

xlc_r -g -O -L. -qarch=pwr7 -qtune=pwr7 -lesslsmp -lm -qsmp -qthreaded -qmaxmem=-1 2.c

我收到内存向量 z 的 Killed 错误。

这是ulimit -a

是否需要任何标志来分配更多内存?

0 投票
1 回答
461 浏览

linker - “重复符号:__fe_def_env”是什么意思?

在 AIX 上使用 xlc 构建共享库时,您会看到以下链接器警告:

要重现,请使用此源文件fenvtest.c

然后运行以下命令: