问题标签 [gcc]

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 投票
3 回答
7778 浏览

command-line - 如何使用 $ORIGIN 获取 RPATH 以在 Code::Blocks GCC 上工作?

我正在尝试将包含特殊字符串 $ORIGIN 的 RPATH 链接到使用 GCC 和 Code::Blocks IDE 构建的可执行文件中。我已经指定

在项目的链接器选项中,但到 GCC 的命令行输出是错误的(为了清楚起见已删除):

为 Code::Blocks 指定此参数的正确方法是什么?

0 投票
4 回答
12226 浏览

c++ - 有没有一种标准的方法来使用 stl 在 linux 上使用 gcc 进行 findfirst、findnext?

我似乎无法在 gcc for Linux 上找到 _findfirst / findfirst、_findnext / findnext API,如果它包含在那里,我实际上宁愿使用标准模板库 (STL)。

有谁知道有哪些 API 可用于在 Linux for C++ (gcc) 下列出目录中的文件?

0 投票
1 回答
191 浏览

gcc - 使用 GCC for AmigaOS 重新编译应用程序的常见问题解答?

我正在尝试重新编译一些开源应用程序以在 amigaOS 下工作。有人可以向我指出一个很好的分步指南,解释在编译之前我需要对源代码进行哪些更改(从经验法则的角度来看)?

0 投票
2 回答
7181 浏览

c++ - 用于 gcc-arm 工具链的 Boost C++ 库

我在 timesys arm-gcc 工具链上构建 1.35.0 和 1.36.0 都没有问题,无论是静态(链接静态)还是动态(.so,默认选项)。

但是,当我尝试链接一个简单的示例文件系统应用程序时:

我收到以下链接器错误:

有谁知道我怎样才能让 Boost 为 gcc-arm 工具链构建?

0 投票
3 回答
2567 浏览

c++ - GCC 编译的静态库包含什么?

我的应用程序链接到 libsamplerate.a。我这样做是为了更容易分发最终的二进制文件。

我担心 .a 文件中的代码可能取决于我还需要分发的其他一些库。

但如果不是这样,我担心我会因为包含多个副本而使我的应用程序过于臃肿。库。

libsamplerate.a 中到底有什么?只是 libsamperate 的字节码?或者更多?

0 投票
3 回答
216 浏览

optimization - 我如何弄清楚 -Ogcc 中的选项?

我似乎记得能够打印出(或定位)每个 -O<num> 选项打开的特定开关。你能提醒一下吗?

谢谢!

0 投票
3 回答
1236 浏览

windows - C(++) 编译器转换 - 请让 DJGPP 消失

我正在写一个内核,我有几个朋友和我一起做这个项目。我们一直在使用 DJGPP 编译该项目,但我们在以这种方式编译时遇到了一些跨平台兼容性问题,导致我在该项目上的主要 Partnet 无法在 Windows XP 上编译。(DJGPP 的 GCC 在 Windows XP 上存在超过 127 个参数列表的问题,但在 Vista 上没有相同参数列表的问题。因此,这一次,Vista 在某些方面比 XP 工作得更好。oO)

任何人,与其尝试一些肮脏的技巧来使该死的东西用 DJGPP 编译,我们决定我们要完全放弃 DJGPP 并使用不同版本的 GCC for windows。问题是,MinGW(据我所知)不允许我们对代码的汇编部分使用 NASM 语法,此时将其全部转换为 AT&T 语法会有点痛苦。当然可能,因为它在项目的早期阶段,但很痛苦。

所以现在你知道问题所在了。我的问题是:Windows 的 GCC 编译器发行版将允许我们最轻松地将这个项目移植到自身?理想情况下,我们正在寻找可以执行 NASM 汇编器语法的东西,不依赖外部 dll(这里是内核,它无法访问它们)并且可以在 Windows 上的多个版本上一致地工作。您对执行此操作的最佳方法有何建议,以及您推荐什么版本的 GCC for windows?

请注意,如果我们需要将项目转换为 AT&T 语法,那没关系,我不想这样做。我们实际上是在使用 NASM 来组装它的组装位,并生成一个有效的 .o 文件,但 MinGW 出于某种原因无法将其链接。我认为内联汇编位(可能是 5 行)已经是 AT&T 语法,正如 GCC 所要求的那样。

谢谢!

0 投票
3 回答
30654 浏览

c++ - 如何在编译时测试当前版本的 GCC?

我想根据 GCC 的版本包含不同的文件。更准确地说,我想写:

我不在乎 3.2 之前的 gcc。

我很确定在预处理时为此定义了一个变量,但我再也找不到它了。

0 投票
4 回答
2061 浏览

c - 用于 fortran 程序的 mtrace

我正在尝试用于mtrace检测 fortran 程序中的内存泄漏。我正在使用 gfortran 编译器。有关 mtrace 的(工作)C 示例,请参阅维基百科条目:http ://en.wikipedia.org/wiki/Mtrace

我尝试了两种方法,即包装 mtrace() 和 muntrace() 并从 fortran 程序中调用它们,以及创建一个直接调用 mtrace() 和 muntrace() 的 C 程序,除了中间的泄漏 fortran 代码。这两种方法都无法检测到内存泄漏,但这里我只介绍后者。

例子.c

泄漏的.f90

我编译:

然后我运行:

然后我解析raw.txt mtrace输出:

并得到:

没有内存泄漏。

有什么我做错了,或者我可以做些什么来mtrace找到泄漏的fortran内存分配?我猜 gfortran 正在使用不同的malloc调用,它mtrace不会跟踪......事实上,正如我在上面所写的,如果我编写一个调用 (wrapped)mtrace()muntrace().

已编辑:我考虑了其他选项(包括此处尚未提及的一些选项),但正在调试的实际代码在 P6/AIX 上运行,因此 Valgrind 将“只是”不方便(它需要在不同的机器上运行),而 Forcheck 将是不方便(它需要在不同的机器上运行)和昂贵的(〜3k $)。目前 mtrace 将是最好的解决方案,如果它有效的话。

再次编辑:我的猜测

我猜 gfortran 正在使用不同的malloc调用,它mtrace不会跟踪......

是正确的。查看可执行文件(使用nmreadelf)没有任何malloc()调用,而是调用_gfortran_allocate_array- 可能会调用 malloc)。还有其他想法吗?

再次编辑:我发布了答案,但我不能接受(访问http://stackoverflow.uservoice.com/pages/general/suggestions/39426并请求该功能,它确实需要 - 不需要获得声誉)

0 投票
2 回答
668 浏览

c++ - std::streams 已经可以移动了吗?

GNU gcc 4.3 部分支持即将到来的 c++0x 标准:在实现的功能中,右值引用。通过右值引用,应该可以移动不可复制的对象或从函数中返回它。

std::streams 是否已经可以通过右值引用移动,或者当前的库实现是否缺少某些东西?