问题标签 [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 投票
1 回答
4661 浏览

gcc - 在编译文件中包含 mingw 库

我正在使用 cmake 生成一个 Eclipse CDT MinGW 项目。(Eclipse 版本开普勒)

这是我的 Cmakelist:

该代码在我的计算机上编译和运行没有问题,但在其他 PC 上却无法运行。需要一些类似的dll libgcc_s_dw2-1.dll。我在我的计算机中查找了这个 dll,并在C:\MinGW\bin. 为了解决这个问题,我把这个文件夹的内容复制到了另一台电脑上,exe文件终于运行了。但是,我想知道是否有更好的方法可以在任何 Windows pc 中运行 exe 文件,在编译过程中添加这些库。

我正在阅读,我应该将编译器链接到静态库。在 Eclipse 中,我尝试在属性>C/C++ 包含路径和符号下以及项目路径>库下添加 dll,但它不起作用。我试图修改 CmakeList 但它也不起作用。

我不知道为什么会出现这个问题以及如何C:\MinGW\bin在 exe 文件中包含 的内容。

非常感谢您的帮助

0 投票
1 回答
7031 浏览

gcc - 如何构建 GCC 编译器的 Libgcc

有没有办法在不构建 gcc 编译器的情况下构建 libgcc?

我试图运行 libgcc 的配置脚本,但它说 ../../gcc/libgcc.mvars 丢失。

我的基本需求是为多个平台构建 libgcc,并为各种版本的 libgcc 提供多种配置。

0 投票
1 回答
16792 浏览

c++ - 将链接器选项添加到 Code::Blocks

当我尝试在我的 Win 7 x64 机器上运行使用 Code::Blocks 编译的可执行文件时,它说它无法运行,因为缺少 libgcc_s_dw2-1。

我找到了一个解决方案,将库包含在链接器选项中。(这是我从中得到的参考资料: http://forums.codeblocks.org/index.php?topic=16748.0;prev_next=prev。看最后一篇)

问题是,当我进入链接器设置时,在项目构建选项中,那里没有可用的库。我必须下载吗

如帖子所述,并将它们放在一个目录中,以便 Code::Blocks 可以看到它们并将它们添加到链接器选项中?如果是的话,我把图书馆放在哪里?

0 投票
2 回答
1477 浏览

linux - GCC 在构建 libgcc 时依赖于 GNU 汇编器?

我正在尝试构建 GCC 4.7.3。当我使用非常旧的系统 GCC 4.1 构建它时,一切正常,我得到了 GCC 4.7.3。但是当我试图用刚刚编译的 GCC 4.7.3(实际上是自己构建)来重建它时,我遇到了 AS(GNU 汇编器)的麻烦。我将在不使用旧且有缺陷的系统编译器的情况下构建它。所有路径和所有库都是正确的(我检查过)。我可以构建所有先决条件。

但是当它开始构建 libgcc 时,它停留在检测 C 编译器上。

这是 config.log 的一部分,有错误:

问题是 xgcc (内部?)调用 GCC 作为带有 GNU AS 标志(例如 --32)的汇编程序,但我不使用 GNU AS!我只有 GCC 并且要使用它的汇编程序!在构建 libgcc 时,是否有任何配置选项或强制使用 GCC 汇编器的东西?我的 GCC 配置参数:

正如您在构建 GCC 本身时所看到的那样,我通过“--with-as=”命令强制使用 GCC 作为汇编程序。但是我怎么能在 GCC 内部 libgcc 编译阶段做到这一点呢?还是 GCC 依赖于 GNU AS 汇编器?

笔记:

xgcc 调用调用汇编程序的“as”脚本。在我的情况下,'as' 有字符串: ORIGINAL_AS_FOR_TARGET="/build/gcc/bin/gcc" 并且应该使用 GCC 作为汇编程序。但是 xgcc 使用 GNU AS 特定的参数调用它。

0 投票
1 回答
3015 浏览

c - 将 libgcc 链接到 -nostdlib 编译

我正在尝试生成一个不依赖于 libc (或任何其他)的可执行文件。首先我做了这个:

编译gcc -m32 -nostdlib test.c -o test

到目前为止,一切都很好。后来我尝试使用一些更“高级”的 C 语言,例如long long. 在 32 位平台(我的情况)上,这需要libgcc

这会导致编译失败undefined reference to '__divdi3'。似乎正确,因为我实际上并没有告诉它链接。但是添加标志-static-libgcc并不能解决问题!为什么?

请注意,我无法动态链接到 libgcc。以下必须成立:

我正在使用 gcc 4.8.2(没什么花哨的)从 64 位 Ubuntu 14.04 编译。

0 投票
1 回答
152 浏览

c# - 在 Ubuntu 上以 x64 运行的 .NET x32 目标应用程序

所以我正在尝试调试我的用户在 Ubuntu 上使用软件时遇到的问题。

我已经编译了一个针对 x86 平台的 C# 应用程序,当在我的 x64 Windows 映像上运行它时,该应用程序作为 x32 应用程序运行。

在此处输入图像描述

但是,当在 Ubuntu 上通过单声道运行相同的应用程序时,它显示它是 x64

在此处输入图像描述

然后导致非常讨厌的错误

必须安装 libgcc_s.so.1 才能使 pthread_cancel 工作

0 投票
1 回答
2974 浏览

windows - 使用 Rust 构建的 DLL 在运行时需要 libgcc.dll 吗?

如果我用Rust 语言构建 DLL ,它是否需要libgcc*.dll在运行时出现?

一方面:

  • 我在互联网上的某个地方看到过一个帖子,声称是的。
  • rustc.exelibgcc_s_dw2-1.dll它的目录下,从http://crates.io网站cargo.exe下载时没有 dll 将无法运行;

另一方面:

  • 我看过关于在 Rust 中构建玩具操作系统内核的文章,所以它们肯定不需要存在 libgcc 动态库。

所以,我很困惑。确定的答案是什么?

0 投票
1 回答
378 浏览

assembly - AVR libgcc 中缺少数学符号

我有一些为未知版本的 GCC 生成的 AVR 程序集。我可以将此源代码组装成目标代码,但如果我尝试链接它,我会被告知它包含未定义的符号。

具体来说,我缺少以下符号:

这些似乎是 libgcc 符号,但它们不存在于libgcc.a我的 AVR-GCC (4.8.3) 版本中。我在这些文件上验证了它的运行nm,并且没有定义这些名称的符号。

我无法确定这些符号存在于哪些 AVR-GCC 版本中,如果有的话,或者它们是否由另一个库提供。其他搜索已被证明是徒劳的,所以现在我希望 SO 的智慧能够解开我的谜团。

为清楚起见,这里是一个组装文件的简单示例,它可以毫无问题地组装但链接失败:

尝试链接此失败并出现以下错误:

这是我正在使用的 libgcc:

其中不包含符号__udivqi3

或者,如果没有包含这些符号的 GCC 版本,是否有它们的替代品会遵循相同的调用约定并执行相同的任务?

0 投票
2 回答
811 浏览

c++ - libgcc_s.so 是否可以在同一进程中静态和动态链接?

我的应用程序引入了许多共享库。有些是用 C++ 编写的,它引入了 libstdc++.so,它引入了 libgcc_s.so。还有一些是用纯 C 编写的,并与 -static-libgcc 链接。

所以现在我有一些 libgcc 静态链接在多个共享库中,并且 libstdc++ 在运行时动态加载 libgcc 的其他位。

Q1:这个设置会给我带来什么麻烦吗?libgcc 是否具有会使这种混合链接出现问题的内部状态,或者它只是内联函数?

Q2:为了让我的应用程序在较旧的 Linux 上运行,我应该发布 libstdc++.so 和 libgcc_s.so 并在主 exe 上使用 rpath 来加载它。这是正确的方法吗?

0 投票
0 回答
194 浏览

linux - 是否静态链接libgcc?(Linux)

静态链接 libgcc 是否可以提高 Linux 上二进制文件的向后兼容性?

是否有默认不提供的 Linux 发行版?或者,旧的 Linux 可能有一个旧的、不兼容的 ABI?