问题标签 [gcc5]

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 投票
1 回答
1340 浏览

gcc - g ++未定义对“main”的引用

我有一个 gcc 5.2.0 配置如下:

和 g++ :

我在 tmp2.cpp 文件中有以下简单的 c++ 代码:

我正在尝试编译成动态库(.so),如下所示:

最后一个命令给了我以下错误:

-v可以在此处的要点中找到详细输出 thx 。

我对 gcc/g++ 很陌生,并不真正了解发生了什么。发生了什么 ?

0 投票
1 回答
723 浏览

macos - 在 OSX 上使用 g++-5 的 Cython

我正在使用python 3.4并且我将包装一些 cpp 文件,这些文件使用一些新的 c++ 语言功能以及 openmp,但是,我在让它工作时遇到了一些麻烦。我已经使用 brew 安装了 gcc5,我可以很好地编译我的 cpp 文件。当我尝试将它们包装到 pyx 文件中时,会出现编译器错误。这是我的setup.py

跑步

我收到很多这样的错误:

如果我将编译器更改为 normal g++,它可以正常工作并编译Apple LLVM version 6.1.0 (clang-602.0.53)

有谁知道发生了什么?构建一个静态或动态库并包装它会更好吗?如果你不知道,我对 Cython 很陌生。任何意见是极大的赞赏!

0 投票
0 回答
3733 浏览

c++ - 链接到使用 GCC5 编译的库时,clang 中的未定义引用

我尝试使用 libmuparser 的 ubuntu 15.10 存储库版本(包 libmuparser2v5)。使用 gcc 编译可以正常工作,但不能使用 clang。我对此进行了更深入的研究,以提出以下最小(非)工作示例和一些问题。

考虑一个带有一个简单类的库,该类接受 astring并返回 a string

testlib.h

testlib.cpp

这是用 gcc 5.2.1 作为静态库编译的

现在编译一个应用程序main.cpp

通过使用 clang 3.6.2-1

导致错误

现在我发现 gcc5 有一个新功能,称为 ABI 标记,可以在不兼容时帮助对库进行版本控制并防止链接。看静态库

给出:

所以添加了 ABI 标签,但没有cxx11添加. 当一个方法返回一个. 这就是为什么 clang 只声称没有找到。getsetstringTest::get()

我想这样做是为了给出get一个调用签名,清楚地表明需要 c++11 才能与该函数链接。由于类型set的原因,这不是必需__cxx11的。

问题:

  • 我的猜测是对的,还是可能有更多内容需要补充?
  • 如果是这样,如何解决这个问题?
    • 库编写者可以做些什么来使库可链接到 gcc 5.2 和 clang 3.6 编译代码?(源代码变化?
    • 库用户可以做什么来编译和链接 clang 3.6 与使用 gcc 5.2 编译的库,反之亦然。(源代码更改或编译标志?
    • 包维护者可以做些什么来使库可链接到 gcc 5.2 和 clang 3.6 编译代码?(编译标志?
    • 未来版本(哪个版本)中, clang 开发人员会修复这个问题吗?(默认情况下 ABI 兼容性?)但是现在有一个解决方案仍然很好,因为否则 clang 很难在 ubuntu 15.10 和衍生产品上使用。

附加信息:

  • 的签名是在编译get时定义的。testlib.cpp因此,共享对象不会产生任何影响。也可以nm -gC testlib-gcc.o用来查看符号。
  • 在一个用 clang 编译的库中,签名getTest::get(). 然后 gcc 找不到符号Test::get[abi:cxx11](),所以兼容性是相互破坏的。
  • 使用 gcc 的编译标志-D_GLIBCXX_USE_CXX11_ABI=0(在此处找到)不是解决方案,从那时起 set 的签名也被更改:(Test::set(std::string)get那时很好)。
  • 在 clang 中使用编译标志-stdlib=libc++似乎没有帮助,因为它还报告了未定义的引用Test::get()(以及更多未定义的引用)。
0 投票
1 回答
172 浏览

python - 导入错误:Cython 和 gcc-5

我想通过使用 Cython 在 Python 中使用一些 C 函数。在这里我注意到,如果我使用 GCC-5 编译 C 代码(为了使用 Cilk)nm,在生成的 *.so-function 中列出的入口会少很多:

我所有的自写函数都不见了。此外,我得到了错误

我该如何解决这个问题,为什么会这样?

-文件的内容pyx

以及 setup.py 文件中的命令行选项:

0 投票
1 回答
2267 浏览

gcc - 可变参数函数的 gcc 5 错误:后缀或操作数对“movq”无效

尝试安装 OpenMPI 时,.configure 文件在检查所选编译器的 ISO C99 能力的部分中失败。

困惑的是 gcc 当然有 std=gnu99 和 std=c99 选项,我修剪了 20,000 行配置文件以隔离违规部分。最后,我将其追溯到 gcc 5 没有编译变量参数函数。

下面的代码生成“后缀或操作数对 `movq' 无效”错误,这是 .configure 文件失败的根本原因。

(我遵循的 OpenMPI 的分步安装在这里https://wiki.helsinki.fi/display/HUGG/Installing+Open+MPI+on+Mac+OS+X

任何人都见过这个并且知道如何解决它?

0 投票
2 回答
1066 浏览

debian - libgcc1 依赖 gcc-5-base 但它不可安装

我正在尝试通过使用在 Debian 7.8 上安装 fbi apt-get install fbi,但我收到包含以下内容的错误消息:

实际上,每当我尝试使用apt-get.

此错误消息背后的原因可能是什么?

提前致谢, 阿纳斯

0 投票
1 回答
962 浏览

gcc - 在 g++-5-ish 发行版上使用 g++-4.9 与 Boost 链接时未定义的引用

我编写了以下开创性的应用程序:

我正在尝试在 Debian Stretch 上构建它,默认编译器是 GCC 5.3.1-5,安装的 Boost 版本是 1.58.0。

但是,由于我不会在此处介绍的原因(如果这不是 MCVE,这将很明显g++-4.9),我需要使用 编译和链接二进制文件,而不是g++-5.3. 编译工作正常,但是当我尝试链接时,会发生这种情况:

  • 这是由于 gcc 4 和 5 之间的某些 ABI 不兼容造成的吗?
  • 如果是这样,除了构建我自己的 Boost 版本之外,还有什么办法可以绕过它?
  • 如果不是,是什么原因造成的?
0 投票
3 回答
4196 浏览

c++ - 试图让 CUDA 7.5 与 GCC 5.x 一起工作

因此,如果您在系统 GCC 版本为 5 及更高版本时尝试使用 nvcc,则会收到“不支持的版本”错误。但是 - 我听说有人报告说他们刚刚对此发表了评论,并且 CUDA 7.5 与 GCC 5.x 一起“为他们工作”。

但是,当我这样做(检查在 中$CUDA_DIR/host_config.h)并编译某些内容时,我收到以下错误:

和一堆其他人,但那些可能取决于这些。现在,这些是 X86 架构的与 MMX 相关的内在函数。我不直接使用它们,所以我猜他们以某种方式选择加入。也许这可以避免?

有没有办法克服这些错误并真正让 GCC 5 与 CUDA 7.5 共存?而要构建和运行代码?

笔记:

  • 我已经阅读了使用的建议-D__STRICT_ANSI__。我有,而且似乎没有帮助。
  • 我在 Fedora 22 上,以防万一。
0 投票
1 回答
95 浏览

c++ - GCC 5.1 库对旧发行版的依赖——演练

我在我的 CentOS 5.11 上编译并安装了 GCC 5.1.0(板载默认 GCC 4.x)。

在另一个 CenOS 5.11 工作站上运行已编译的(在这台机器上)二进制文件是安全的,哪里没有任何 gcc 5.1 运行时库(/usr/local/lib64)?

将不胜感激任何建议。

谢谢你。

0 投票
0 回答
543 浏览

c++ - 错误:“log1p”不是“std”的成员

我创建了一个简单的 main 函数,在它之上,我包含了犰狳库。

我使用 g++(GCC 版本为 5.3)并在 windows 8 上的 cygwin 64bit 下编译它。我打开了 c++11 选项并添加-larmadillo了链接到犰狳库。

一旦我编译代码,我就会收到如此可怕的错误。相同的代码在 windows XP 32 位上运行得非常好。