gcc相关内容

哪个 gcc 和 g++ 版本支持 c 和 c++ 的哪个标准?

例如,哪个gcc版本支持c99? 是否有任何表格或图表显示 gcc 和 g++ 的标准支持状态? gcc 和 g++ 是如何演变的? 谢谢~ 解决方案 非常严格地说,GCC 从 4.3 开始肯定只支持 C89、C++98 和 C++03. 到目前为止,对 C99 的支持仍然不完整,但 GCC 长期以来一直支持一个非常大且可用的子集. 实验性的 C++11 支持 ..
发布时间:2022-01-23 20:54:03 C/C++开发

将 C 编译的静态库链接到 C++ 程序

我试图将一个静态库(用 gcc 编译)链接到一个 c++ 程序,但我得到了“未定义的引用".我在 ubuntu 12.04 服务器机器上使用了 gcc 和 g++ 版本 4.6.3.例如,下面是阶乘法的简单库文件: mylib.h #ifndef __MYLIB_H_#define __MYLIB_H_整数阶乘(整数 n);#万一 mylib.c #include "mylib.h"整 ..
发布时间:2022-01-23 20:53:43 服务器开发

C和C++中寄存器变量的地址

我知道寄存器变量的概念及其用例,但根据我的尝试,我的脑海中几乎没有问题. 虽然我可以在 C++ 中访问,但我无法访问 C 中的寄存器变量的地址!为什么?访问寄存器变量的地址有什么问题吗? 假设如果我在 C++ 中将一个字符串变量声明为寄存器,那么该变量将存储在哪里?将C++中的'string'等非数字数据类型的存储类声明为register有什么意义? 更新:我认为 C++ 允许我 ..
发布时间:2022-01-23 20:53:14 C/C++开发

围绕可以由 C 链接器链接的 C++ 库创建 C 包装器

按照 这个问题的答案(开发 C 包装器面向对象的 C++ 代码的 API) 我设法为我的 C++ 代码编写了一个 C 包装器. 我想将我的包装器编译并链接到一个静态库(使用 g++ 编译),该库只能使用 gcc(而不是 g++)使用、编译和链接.这样库的用户就不必关心库是用 C++ 编写的. 这可能吗? 解决方案 此链接解释了一些编译器选项和场景:http://docs.ora ..
发布时间:2022-01-23 20:53:05 C/C++开发

GNU C++ 错误消息

在线提供 g++ 编译器的错误/警告消息的完整列表吗? 我正在寻找类似于 MSDN 文档的内容,该文档描述了每条消息的含义,并且可能有一些示例代码来演示导致此类错误的条件. 我查看了 GCC 在线文档,但我什至没有看到一个简单的枚举所有可能的消息. 解决方案 很遗憾,没有这样的列表,只有 GCC 源代码自己定义了消息. 其中一些消息由 GCC 测试套件执行,因此如果您下载 ..
发布时间:2022-01-23 20:51:22 其他开发

如何使用多个源文件通过 gcc 创建单个目标文件

我使用 g++ 的 -c 选项来创建一堆目标文件,它只让我为每个目标文件指定一个源文件.我想让多个文件进入其中的一些.有没有办法做到这一点? 解决方案 其他人提到了存档,但另一个选项是 Unity builds. 代替: g++ -c file1.cpp file2.cpp 创建一个单独的“统一文件" //这是整个文件(unity.cpp)#include "file1.cpp ..
发布时间:2022-01-23 20:50:44 C/C++开发

在 C++0x lambda 中通过复制捕获引用变量

根据this question的回答和评论,当引用变量被值捕获时,lambda对象应该制作被引用对象的副本,而不是引用本身.但是,GCC 似乎没有这样做. 使用以下测试: #include #include 使用 std::cout;使用 std::endl;int main(int argc, char** argv){诠释 i = 10;诠释&i ..
发布时间:2022-01-23 20:49:03 C/C++开发

如何让 g++ 列出所有#included 文件的路径

我想让 g++/gcc 告诉我在 C++ 构建中 #include-ing 的所有非系统的路径.事实证明,这是一个艰难的搜索,因为 Google 必须以十种不同的方式对其进行解释. 我想要这些文件名和路径,以便我可以将它们添加到 Exuberant CTAGS 的搜索路径中.我们有一个庞大的项目,如果我在整个项目上使用 ctags,生成标签文件大约需要半小时,而编辑器进行查找的时间几乎一样长 ..
发布时间:2022-01-23 20:48:53 C/C++开发

获取“访问被拒绝"尝试从命令行使用 g++ 编译时.赛格温

我已经在 cygwin 中安装了所有软件包.我还将 C:\cygwin\bin 添加到我的 PATH 变量中.但是当我尝试在命令行中编译一个 c++ 文件时,我收到错误“访问被拒绝".相同的命令在 cygwin 批处理窗口中工作.有谁知道怎么回事? 编辑:我更改了 gcc 和 g++ 的权限.我不再收到“拒绝访问"错误,而是收到一个新错误:“此版本的 C:\cygwin\bin\g++.ex ..
发布时间:2022-01-23 20:48:24 C/C++开发

GCC 可以从最终输出中消除什么样的死代码?

我一直被告知编译器足够聪明,可以消除死代码.我正在编写的大部分代码在编译时都有很多已知信息,但代码必须以最通用的形式编写.我不知道任何程序集,所以我无法检查生成的程序集.在最终的可执行文件中可以有效地消除什么样的代码? 几个例子但不限于 f(bool b){如果(乙){//一些代码}别的{//一些代码}}f(真);///////////////////////模板F(){如 ..
发布时间:2022-01-23 20:47:26 C/C++开发

如何在 GCC 中通过优化构建发布模式?

我需要在“发布模式"中构建并在 GCC 中进行全面优化的具体选项是什么?如果有多个选项,请列出所有选项.谢谢. 解决方案 http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html 没有“一刀切"——您需要了解您的应用程序、您的要求和优化标志,以确定您的二进制文件的正确子集. 或者你想要的答案:-O3 ..
发布时间:2022-01-23 20:45:58 C/C++开发