问题标签 [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.
command-line - 如何使用 $ORIGIN 获取 RPATH 以在 Code::Blocks GCC 上工作?
我正在尝试将包含特殊字符串 $ORIGIN 的 RPATH 链接到使用 GCC 和 Code::Blocks IDE 构建的可执行文件中。我已经指定
在项目的链接器选项中,但到 GCC 的命令行输出是错误的(为了清楚起见已删除):
为 Code::Blocks 指定此参数的正确方法是什么?
c++ - 有没有一种标准的方法来使用 stl 在 linux 上使用 gcc 进行 findfirst、findnext?
我似乎无法在 gcc for Linux 上找到 _findfirst / findfirst、_findnext / findnext API,如果它包含在那里,我实际上宁愿使用标准模板库 (STL)。
有谁知道有哪些 API 可用于在 Linux for C++ (gcc) 下列出目录中的文件?
gcc - 使用 GCC for AmigaOS 重新编译应用程序的常见问题解答?
我正在尝试重新编译一些开源应用程序以在 amigaOS 下工作。有人可以向我指出一个很好的分步指南,解释在编译之前我需要对源代码进行哪些更改(从经验法则的角度来看)?
c++ - 用于 gcc-arm 工具链的 Boost C++ 库
我在 timesys arm-gcc 工具链上构建 1.35.0 和 1.36.0 都没有问题,无论是静态(链接静态)还是动态(.so,默认选项)。
但是,当我尝试链接一个简单的示例文件系统应用程序时:
我收到以下链接器错误:
有谁知道我怎样才能让 Boost 为 gcc-arm 工具链构建?
c++ - GCC 编译的静态库包含什么?
我的应用程序链接到 libsamplerate.a。我这样做是为了更容易分发最终的二进制文件。
我担心 .a 文件中的代码可能取决于我还需要分发的其他一些库。
但如果不是这样,我担心我会因为包含多个副本而使我的应用程序过于臃肿。库。
libsamplerate.a 中到底有什么?只是 libsamperate 的字节码?或者更多?
optimization - 我如何弄清楚 -Ogcc 中的选项?
我似乎记得能够打印出(或定位)每个 -O<num> 选项打开的特定开关。你能提醒一下吗?
谢谢!
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 所要求的那样。
谢谢!
c++ - 如何在编译时测试当前版本的 GCC?
我想根据 GCC 的版本包含不同的文件。更准确地说,我想写:
我不在乎 3.2 之前的 gcc。
我很确定在预处理时为此定义了一个变量,但我再也找不到它了。
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
不会跟踪......
是正确的。查看可执行文件(使用nm
或readelf
)没有任何malloc()
调用,而是调用_gfortran_allocate_array
- 可能会调用 malloc)。还有其他想法吗?
再次编辑:我发布了答案,但我不能接受(访问http://stackoverflow.uservoice.com/pages/general/suggestions/39426并请求该功能,它确实需要 - 不需要获得声誉)
c++ - std::streams 已经可以移动了吗?
GNU gcc 4.3 部分支持即将到来的 c++0x 标准:在实现的功能中,右值引用。通过右值引用,应该可以移动不可复制的对象或从函数中返回它。
std::streams 是否已经可以通过右值引用移动,或者当前的库实现是否缺少某些东西?