问题标签 [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.
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 文件中包含 的内容。
非常感谢您的帮助
gcc - 如何构建 GCC 编译器的 Libgcc
有没有办法在不构建 gcc 编译器的情况下构建 libgcc?
我试图运行 libgcc 的配置脚本,但它说 ../../gcc/libgcc.mvars 丢失。
我的基本需求是为多个平台构建 libgcc,并为各种版本的 libgcc 提供多种配置。
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 可以看到它们并将它们添加到链接器选项中?如果是的话,我把图书馆放在哪里?
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 特定的参数调用它。
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 编译。
c# - 在 Ubuntu 上以 x64 运行的 .NET x32 目标应用程序
所以我正在尝试调试我的用户在 Ubuntu 上使用软件时遇到的问题。
我已经编译了一个针对 x86 平台的 C# 应用程序,当在我的 x64 Windows 映像上运行它时,该应用程序作为 x32 应用程序运行。
但是,当在 Ubuntu 上通过单声道运行相同的应用程序时,它显示它是 x64
然后导致非常讨厌的错误
必须安装 libgcc_s.so.1 才能使 pthread_cancel 工作
windows - 使用 Rust 构建的 DLL 在运行时需要 libgcc.dll 吗?
如果我用Rust 语言构建 DLL ,它是否需要libgcc*.dll
在运行时出现?
一方面:
- 我在互联网上的某个地方看到过一个帖子,声称是的。
rustc.exe
在libgcc_s_dw2-1.dll
它的目录下,从http://crates.io网站cargo.exe
下载时没有 dll 将无法运行;
另一方面:
- 我看过关于在 Rust 中构建玩具操作系统内核的文章,所以它们肯定不需要存在 libgcc 动态库。
所以,我很困惑。确定的答案是什么?
assembly - AVR libgcc 中缺少数学符号
我有一些为未知版本的 GCC 生成的 AVR 程序集。我可以将此源代码组装成目标代码,但如果我尝试链接它,我会被告知它包含未定义的符号。
具体来说,我缺少以下符号:
这些似乎是 libgcc 符号,但它们不存在于libgcc.a
我的 AVR-GCC (4.8.3) 版本中。我在这些文件上验证了它的运行nm
,并且没有定义这些名称的符号。
我无法确定这些符号存在于哪些 AVR-GCC 版本中,如果有的话,或者它们是否由另一个库提供。其他搜索已被证明是徒劳的,所以现在我希望 SO 的智慧能够解开我的谜团。
为清楚起见,这里是一个组装文件的简单示例,它可以毫无问题地组装但链接失败:
尝试链接此失败并出现以下错误:
这是我正在使用的 libgcc:
其中不包含符号__udivqi3
或者,如果没有包含这些符号的 GCC 版本,是否有它们的替代品会遵循相同的调用约定并执行相同的任务?
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 来加载它。这是正确的方法吗?
linux - 是否静态链接libgcc?(Linux)
静态链接 libgcc 是否可以提高 Linux 上二进制文件的向后兼容性?
是否有默认不提供的 Linux 发行版?或者,旧的 Linux 可能有一个旧的、不兼容的 ABI?