问题标签 [g++]
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 - 使用 gcc/g++ 和 ld 的配置文件链接时间
我正在使用 g++ 编译和链接一个由大约 15 个 c++ 源文件和 4 个共享对象文件组成的项目。最近链接时间增加了一倍多,但我没有可用的 makefile 的历史记录。有什么方法可以分析 g++ 以查看链接的哪一部分需要很长时间?
编辑:在我注意到 makefile 一直在使用 -O3 优化之后,我设法通过删除该开关将链接时间减半。有没有什么好方法我可以在没有反复试验的情况下找到这个?
编辑:我实际上对分析 ld 的工作原理并不感兴趣。我有兴趣知道如何将链接时间的增加与特定的命令行开关或目标文件相匹配。
c++ - 使用多核使用 g++ 编译
快速问题:允许 g++ 生成多个自身实例以便更快地编译大型项目(例如,多核 CPU 一次 4 个源文件)的编译器标志是什么?
c++ - 是什么让 g++ 包含 GLIBCXX_3.4.9?
我使用 g++ 4.2.3 版在同一个 GNU/Linux 服务器上编译了 2 个不同的二进制文件。
第一个使用:
第二个使用:
为什么第二个二进制文件使用仅在 libstdc++.so.6.0.9 上可用而不在 libstdc++.so.6.0.8 上可用的 GLIBCXX_3.4.9
g++ 生成的需要 ABI 中断并强制系统具有 GLIBCXX_3.4.9 的新功能是什么?
有没有办法禁用这个新功能而不需要 GLIBCXX_3.4.9?
c++ - 抑制 G++ 3.4.6 中的链接错误
不要问为什么,但是有什么方法可以抑制失败的链接错误?
如:
未定义对 BLANK 的引用
这是在 GCC 3.4.6 中
gcc - 静态链接到动态库。glibc
所以。我有一个问题,我在一台机器上有两个版本的 GCC。
3.4.6 和 4.1
这是由于新软件的一些依赖性问题。(需要 glibc 4.1)
当我将这个新软件与 4.1 库链接时,它链接得很好。但是,在执行软件时找不到库,因为它在我的 LD_LIBRARY_PATH 中查看 3.4.6。如果我将 LD_LIBRARY_PATH 设置为 4.1 库,它会炸毁外壳,并杀死其他东西,因为 3.4.6 库用于此目的。
它有点像22。
有没有什么方法可以在链接时提供该共享库的绝对路径而不使用 LD_LIBRARY_PATH?
这样我可以希望有两个版本,但只为这个特定的应用程序使用 4.1?
c++ - 如何使用多个版本的 GCC
我们有一个需要 glibc 2.4(来自 gcc 4.1)的新应用程序。我们运行的机器有 gcc 3.4.6。我们不能升级,应用程序必须在这台机器上运行。
我们安装了 gcc 4.1,但是在编译时它使用了 3.4.6 中的所有包含等。
我们如何解决这个问题?
仅针对此应用程序使用 4.1 有什么建议吗?
c++ - 在 Cygwin 中处理“C 编译器无法创建可执行文件”
无论我尝试在 Cygwin 中编译什么,我都会得到以下输出:
日志文件的最后几行如下所示:
这是一个全新的 Cygwin 安装,带有 G++ 和许多其他开发工具。知道我需要做什么才能让这件事正常工作吗?
更新 0:尼克,您已经尝试了指向http://www.geektimes.com/linux/troubleshooting/c-cant-create-executables.html的链接- 不幸的是,此说明适用于 redhat,似乎不适用于 cygwin。
eclipse - Eclipse CDT - 链接到 Windows lib 文件的问题
使用 gcc 编译时出现以下链接器错误:
这些函数是否在 Windows 库中定义?
如果是这样,它们是随 Vista 一起安装的,还是我需要安装它们,如果是,我在哪里可以下载它们。
谢谢
c++ - 使用 g++ 编译动态共享库
我正在尝试使用 g++从Program-Library-HOWTO编译以下简单的 DL 库示例代码。这只是一个示例,因此我可以学习如何使用和编写共享库。我正在开发的库的真实代码将用 C++ 编写。
如果我用 gcc 编译程序,它工作正常。
当我将文件名和编译器更改为以下
我收到以下错误:
foo.cpp:16:错误:从 'void*' 到 'double (*)(double)' 的无效转换
我理解(我想我理解,如果这是错误的,请纠正我)我不能从 C++ 中的 void 指针进行隐式转换,但是 C 允许我,这就是为什么上面的代码将使用 gcc 编译但不使用克++。所以我通过将上面的第 16 行更改为:
有了这个,我收到以下错误:
foo.cpp:16: 错误:不能在赋值中将 'double*' 转换为 'double (*)(double)'
这些问题可能更多地与我自己对适当的 C++ 编码标准的普遍无知有关,而不是其他任何事情。谁能给我指出一个关于使用 C++ 示例代码为 Linux 开发动态库的好教程?
xcode - Xcode / GCC 链接问题:文件不是必需的架构
我正在尝试将包含 boost 1.37 和 wxwidgets 的 Windows 项目移植到 Mac。它编译正常,但链接器给我一个 libz.1.dylib 的“文件不是架构 ppc 所需的架构”错误,并且与其他一些库的警告相同的消息。我还收到 libz.1.dylib 的“重复 dylib”警告。
链接器输出如下所示:
使用配置“Debug”构建项目“Gemsweeper Mac”的目标“Gemsweeper Mac”</p>
检查依赖关系
我对 Mac 平台很陌生,因此将不胜感激任何帮助!
谢谢,
阿德里安