问题标签 [libgcc]

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 回答
2425 浏览

c++ - gcc 不会编译缺少的 sys/cdefs.h

尝试在 armhf 嵌入式设备上编译 gcc,但在尝试使用 xgcc 编译 libgcc 时停止,说找不到 sys/cdefs.h

libc6 和 libc6-dev 已经安装,cdefs.h 可以在 /usr/arm-linux-gnueabihf/sys/ 找到

如何将 /usr/arm-linux-gnueabihf 添加到 xgcc 包含路径?

0 投票
1 回答
672 浏览

c++ - 将 GCC 4.4 库与 GCC 4.8 应用程序一起使用

我正在编写一个应用程序,我想在 rhel7 上使用 GCC 4.8。我的问题是我需要使用使用基于 rhel6 的 GCC 4.4 构建的第 3 方共享库。

0 投票
2 回答
27502 浏览

c++ - gcc 无效版本(最大)错误添加符号:错误值

我已经在 Linux x86_x64 上成功构建了几个 32 位、静态和共享库,现在我正在尝试将它们链接到一个可执行文件,但出现以下错误:

其中 foo.so 是我构建的共享库之一。

__moddi3 函数是libgcc 整数库例程的一部分。它的签名是:

而它的作用是为 32 位代码提供 64 位运算。

我什至找不到这个库版本的含义。

为什么我现在看到这个错误 - 在库已经构建之后?

我使用-fPIC-m32标志构建了所有共享库,用于编译和链接。

可执行文件是 CXX 可执行文件。

这是带有--verbose的链接器输出

0 投票
1 回答
1906 浏览

python - anaconda2 找不到 GOMP_4.0

我正在尝试使用healpy HEALPiX 的python 实现。我在 Ubuntu 上,使用 anaconda2。我 pip install healpy==1.9.1 并使用 conda list 检查它是否已安装,并且它使用的是 conda pip,而不是系统。当我“导入healpy”时,我得到:

从我发现的问题似乎与 gcc 编译器有关?我以前在这台计算机上安装过这个版本,所以这似乎是 anaconda 找到正确库的问题。

我已经检查并安装了 gcc 版本 4.8.5。我对连接anaconda和库以取得进展的了解还不够,也找不到太多信息!

0 投票
0 回答
121 浏览

octave - libgcc_s_dw2-1.dll 包含错误

我在 Windows 10 平台上使用 Octave 4.03 大约一年了。突然之间,当我像往常一样尝试启动 Octave GUI 时,我收到以下错误消息:

文件 libgcc_s_dw2-1.dll 不是为在 Windows 上运行而设计的,或者它包含错误。尝试使用原始安装介质重新安装程序或联系管理员。错误状态:0xc0000020。

任何帮助如何解决这个问题?

0 投票
1 回答
2002 浏览

android - 如何修复找不到libgcc.a:没有这样的文件或目录错误

我正在尝试使用 Google Toolchain 为我的 android 手机独立编译内核,并且已经尝试过 Uber 和 linarc。

他们都给出了同样的错误,我不明白:

这是源代码的副本。

这是日志文件的副本

0 投票
1 回答
1326 浏览

c++ - 完全静态地构建具有所有依赖项(libgcc 等)的应用程序?

我目前正在尝试将所有应用程序的依赖项编译为静态库。我的动机:

  1. 不依赖任何操作系统提供的库以获得完美可重现的代码库
  2. 避免在其他系统上部署时由动态链接引起的问题
  3. 链接不同版本的库时避免运行时冲突
  4. 能够为其他操作系统交叉编译

然而,正如我最初担心的那样,我不得不很快地进入兔子洞。我目前坚持使用 OpenCV,我相信还有更多。但是,我的主要问题是:

  1. 是否可以构建一个完全静态构建的应用程序(例如 libc、ligcc 等?)
  2. 是否可以静态链接所有库但动态链接主要组件(libgcc 等)?
  3. 如果没有,是否可以链接到静态构建的库(例如 OpenCV),但通过动态链接(zlib、libc 等)来满足它们的依赖关系?
  4. 我在互联网上进行了研究,但找不到详细介绍链接内部结构(静态与动态)的综合指南。你知道一本好书/教程吗?一本关于 gcc 的书能让我走得更远吗?
  5. 这是一个非常愚蠢的想法吗?
0 投票
1 回答
110 浏览

mingw-w64 - windows上遇到不同版本的编译器+libgcc

我有一个第三方库,它依赖于libgcc_s_sjlj-1.dll. 我自己的程序是在 MSYS2 (mingw-w64) 下编译的,它依赖于libgcc_s_dw2-1.dll.

请注意,第三方库是纯二进制文件(无源)。另请注意,两者libgcc_s_sjlj-1.dll都是libgcc_s_dw2-1.dll32 位的,所以我认为这不是与架构相关的问题。

结果很明显,libgcc_s_dw2-1.dll基于libgcc_s_sjlj-1.dll. 我得到的是一个缺少的入口点__gxx_personality_sj0

我绝对可以尝试调整我的工具链以与第三方的 保持一致libgcc_s_sjlj-1.dll,但我不知道我需要付出多少努力才能做到这一点。我在使用这个 setjmp/longjmp 版本的 MSYS2 下找不到这样的 libgcc dll 变体。我什至担心我需要消除整个工具链,因为我在 MSYS2 下拥有的所有二进制文件都位于该libgcc_s_dw2-1.dll模块的顶部。

My goal is straightforward: I would like to find a solution so that my code will sit on top of libgcc_s_sjlj-1.dll instead of libgcc_s_dw2-1.dll. But I don't know if I am asking a stupid question simply because this is just not possible.

0 投票
1 回答
1377 浏览

ffmpeg - 使用 Android NDK r17 构建 C 库 (FFmpeg):未定义对“__mulodi4”的引用

我的问题恰好出在 FFmpeg 上,但我怀疑几乎所有 C 库都会发生这种情况。

问题描述

我的应用程序使用使用 NDK r10e 编译的 FFmpeg。我正在尝试将所有内容更新到 NDK r17,同时也切换到 clang,因为 Google 更喜欢我们使用它而不是 gcc。

我的第一步是构建 FFmpeg。

为此,我使用该make_standalone_toolchain.py脚本为 x86 架构创建了一个独立的工具链,如下所示:

然后我配置FFmpeg构建如下:

然后我按如下方式构建它:

一切似乎都编译得很好,但我得到了几个链接器错误,它们都说同样的话:

未定义对“__mulodi4”的引用

我尝试过的解决方案

1. 链接 libclang_rt.builtins*

我在网上发现了一些地方,这表明这是由于 libgcc 不提供__mulodi4. 一个名为 sitsofe 的 github 用户非常好,可以在这里发布一个解决方法。但是,我确定在哪里可以找到这个libclang_rt.builtins-i686.a库。这是我在独立工具链目录中找到的内容:

./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-x86_64.a ./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-i386.a ./lib64/clang/6.0. 2/lib/linux/libclang_rt.builtins-aarch64-android.a ./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-mips64-android.a ./lib64/clang/6.0.2/lib/ linux/libclang_rt.builtins-x86_64-android.a ./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-i686-android.a ./lib64/clang/6.0.2/lib/linux/libclang_rt。 builtins-arm-android.a ./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-mips-android.a

图书馆libclang_rt.builtins-i686-android.a看起来很近,但(我认为)没有雪茄。当我尝试链接到它时,我得到了同样的错误:

未定义对“__mulodi4”的引用

这是我的新 FFmpeg 构建配置命令:

我检查-v以确保该行已添加到链接器标志中,并且确实如此。但是,我不知道这个库是否应该工作,更不用说我是否正确地将它添加到链接器标志中。无论如何,我在这里做的事情是行不通的。

2.切换到不同的消毒剂

我没有使用未定义的清理程序,而是尝试切换到地址清理程序。(坦率地说)这是一次彻头彻尾的暗中尝试,基于在本周 Google I/O 的 r17 中模糊地提到了 asan。

在这种情况下,FFmpeg 构建得很好!

但是,当我尝试将 FFmpeg 拉入我的测试项目(一个简单的带有 C++ 支持的 AAR,它只有一个调用 的 jni 方法时av_gettime(),我得到了大量的链接器错误:

错误:错误:未定义引用“__asan_option_detect_stack_use_after_return”
错误:错误:未定义引用“__asan_stack_malloc_0”
错误:错误:未定义引用“__asan_report_load4”
错误:错误:未定义引用“__asan_report_load4”
错误:错误:未定义引用“__asan_shadow_memory_dynamic_address”
错误:错误:未定义引用“__asan_option_detect_stack_use_after_return”
错误:错误:未定义引用“__asan_stack_malloc_0”
错误:错误:未定义引用“__asan_report_load4”
错误:错误:未定义引用“__asan_report_load4”
错误:错误:未定义引用“__asan_shadow_memory_dynamic_address'
错误:错误:未定义引用“__asan_option_detect_stack_use_after_return”
错误:错误:未定义引用“__asan_stack_malloc_0”
错误:错误:未定义引用“__asan_report_store4”
错误:错误:未定义引用“__asan_report_store4”
错误:错误:未定义引用“__asan_init”
错误:错误:未定义对“__asan_version_mismatch_check_v9”的引用

所以似乎找到了FFmpeg库就好了,说明我的CMake文件的那部分是正确的,但是它找不到这些asan引用中的任何一个。

这似乎是人们遇到的一个常见问题,但我找不到真正适合我的解决方法。

0 投票
0 回答
1269 浏览

gcc - 为 32 位编译 libgcc.a 和 libstd++.a

下午好,

如果我今天在这里是因为我遇到了一些编译问题。对于一个项目,我想编译 gcc 以获得 32 位的 libgcc.a 和 libstd++.a。不幸的是我有一些问题。以下是我用来配置和编译所需库的命令行:

当我执行最后一个命令行时,我遇到了这些错误:

我的机器:
Archlinux 64 位,最新
gcc -v 的输出:

谢谢您的帮助 !

编辑:在这里回答

对于那些想知道如何在 x86_64 机器上为 32 编译 libgcc 和 libstdc++ 的人来说:

然后转到包含新安装的文件夹,通常会有两个文件夹:lib32 和 lib64。在 lib32 中,有 32 位版本的 libgcc 和 libstdc++,在 lib64 中,有 64 位版本。

享受 !