问题标签 [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.
c - 将共享对象库 (.so) 文件的生成拆分为两遍而不是一遍
我正在尝试lib_test.so
从“test.c”和test.exp
文件构建一个共享库。该lib_test.so
文件将用作另一个应用程序的扩展。lib_test.so
应用程序文档通过以下命令直接指定生成 tle文件:
但我的要求是分两次构建库:
- 使用命令编译生成
test.o
文件。gcc
lib_test.so
链接以使用ld
命令生成库。
我尝试如下:
- 执行编译步骤如下:
gcc -q64 -c -o test.o test.c
. - 创建
lib_test.so
如下:ld -bM:Sre -bE:test.exp -bnoentry -o lib_test.so test.o
但它没有生成正确的lib_test.so
文件。
我正在使用带有最新 GCC 的 Ubuntu 16.04 LTS 64 位
您能否建议将过程分为两遍的正确方法...
感谢和问候。
c - 在 AIX 5.3 版上编译 perl >5.10
我一直在多个平台上编译 OpenSSL(因此 Perl >5.10,因为它是一个依赖项)。我已经设法在除 AIX 之外的每个平台上编译了 1.1.0b,我什至无法编译 Perl。我尝试了几个版本并查看了 Perl 在线提供的文档。据我所知,它建议使用 5.12.2 版本。
当我尝试编译 5.12.2 版本时,
我从文档中获取以下内容,并填写了一些本地系统变量,例如使用 XLC rv7。
然后我尝试按照提示进行,并得到以下错误:
查看 pod/perlmodlib.PL,我们看到以下内容:
在我绝望中,我试图破解它并避免写入清单,但后来我遇到了这个问题:
错误的频率让我觉得也许我没有正确配置一些东西......
我的下一个想法是尝试最新版本,在撰写本文时是 5.24。使用相同的配置并尝试使我得到以下问题:
我从其他编译中知道这意味着我需要编辑 PERL5LIB 变量。
如果我继续将所有模块添加到路径中:
即便如此,我仍然会收到 5.24.0 源代码中甚至不存在的模块的错误!
我有MakeMaker,但5.24版本不包含vpp.pm!再一次,绝望地我试图从不同的来源把它放在那里,我得到了这个错误:
所有这一切让我觉得我可能没有正确配置某些东西......有经验的人可以帮我提供一些关于 AIX 上 Perl 的简单安装说明吗?我会非常感激。谢谢!
以下是有关我的系统的一些信息:
c++ - xlc:模板类的大小不起作用
我在模板参数中使用 sizeof() ,如下所示:
出于某种原因,xlc++ 决定将其sizeof(Foo<A>)
作为默认模板参数的结果为 1。为什么会这样?这是编译器错误吗?它在 Visual Studio 2015 中打印 4、4。
我正在使用 xlc 版本z/OS V2.1 XL C/C++
。
c++ - 为什么 xlc++ 编译器抱怨强制转换右值?
在 z/OS 上,pthread_t
类型是一个包含 member 的结构体char __[8];
。我试图将其从返回值转换为int64_t
. 我收到以下错误:
CCN5216 (S) “char [8]”类型的表达式无法转换为“int64_t”类型
但是,如果我使用临时变量tmp
,它就可以工作。我可以使用 Visual Studio 2015(定义mypthread
类似于 zos 的自定义结构pthread_t
)编译此代码而不会出错。你知道为什么 xlc++ 这个演员阵容有问题吗?铸造标准是否符合?
c++ - 如何解决系统头宏和 boost 模板函数之间的名称冲突?
使用 boost 模板函数解决冲突的宏名称的最佳方法是什么?包含 boost/chrono.hpp 后,我得到了编译器错误:
CCN5816 (W) 为宏“round”指定了太多参数。额外的参数被忽略。“/usr/include/math.h”,第 2133.16 行:CCN5425 (I) “round”在“/usr/include/math.h”的第 2133 行定义。
round
与模板函数冲突boost::chrono::round
。
/usr/include/math.h
/boost/chrono/round.hpp
#undef
如果我修补round.hpp ,我似乎可以使用宏- 也许我可以使用parantheses?在宏和成员函数冲突的答案中,函数名称在括号内,但这是在函数的使用中,而不是在其定义中。它也适用于定义吗?
BoostChronoTest.cpp
xlc - XlC 标志 qhalt 问题
我正在使用 xlC 13.1.5 和 CMake 3.5。当我尝试使用 CMake 编译 MPI 包时,出现以下错误:
我读到这是此编译器版本的错误,不支持使用“e”选项添加 qhalt 标志。有解决问题的方法吗?目前我无法更改编译器版本。
gcc - 相当于 gnu 和 ibm openmp 库的 KMP_AFFINITY=verbose?
在 Intel 系统上使用 OpenMP 时,我经常发现设置它很有用,KMP_AFFINITY=verbose,(other options...)
以便库吐出我的线程实际绑定到的内核。在尝试不同的线程绑定选项时,我发现这很有帮助。目前我正在使用 Power8 系统,想知道是否有KMP_AFFINITY=verbose
GNU 和/或 IBM OpenMP 发行版的等价物。换句话说,如果我使用 g++ 或 xlc++ 编译我的 OpenMP 可执行文件,我如何获得关于我的线程放置位置的信息?
c - sprintf 的什么输入会产生 0 结果?
我正在尝试调试与此特定代码无关的问题,并且正在寻找线索,线索是“该计数器可能具有什么值?” 以下代码行
正在为输出生成“0.00P”。
这是我对参数的了解。输入是unsigned long long
一个值 >= (10^12 - (10^7 / 2)) 的值。decimal = '.'
是的,我知道这"%lld"
会更好"%llu"
,我会解决这个问题。
但与此同时,我正在寻找有关输入内容的线索。问题发生在客户身上,我们不知道如何重现它,因此添加调试代码或使用调试器不是一种选择。
编译器是 IBM z/OS C++ 编译器。在你们翻白眼之前,“EBCDIC 是魔鬼的杰作!” 它是符合 Posix 的 C++ 编译器和环境。
c++ - 尝试在 AIX 6.1 上创建构建过程
我正在尝试更新客户端的构建过程。我的客户正在使用运行 AIX 6.1 的 IBM P6。我的客户已经能够在类似的系统上编译和构建 C++ 和 C 代码,但不是我正在处理的特定系统。
我确保包含 xlc 的 IBM 目录在我的 $PATH 中。当我运行 gmake 时,我收到一条错误消息,指出 gmake 找不到 .orig/xlc_r。我将 .orig 的路径添加到我的 $PATH 中,但仍然出现错误。
我面前没有错误列表,但它看起来像这样:
gmake:xlc_r [11]:找不到.orig/xlc_r
我需要设置另一个环境变量吗?
谢谢佩迈耶
aix - AIX 中的 xlsmp 是什么?
我已经为 AIX 安装了 Xlc 编译器,它安装的库之一是:/usr/lpp/xlsmp.rte/xlsmp.rte/3.1.0.6/liblpp.a
. 我很想知道
什么是 xlsmp?
这个库包含什么?