gcc相关内容
例如,哪个gcc版本支持c99? 是否有任何表格或图表显示 gcc 和 g++ 的标准支持状态? gcc 和 g++ 是如何演变的? 谢谢~ 解决方案 非常严格地说,GCC 从 4.3 开始肯定只支持 C89、C++98 和 C++03. 到目前为止,对 C99 的支持仍然不完整,但 GCC 长期以来一直支持一个非常大且可用的子集. 实验性的 C++11 支持
..
我试图将一个静态库(用 gcc 编译)链接到一个 c++ 程序,但我得到了“未定义的引用".我在 ubuntu 12.04 服务器机器上使用了 gcc 和 g++ 版本 4.6.3.例如,下面是阶乘法的简单库文件: mylib.h #ifndef __MYLIB_H_#define __MYLIB_H_整数阶乘(整数 n);#万一 mylib.c #include "mylib.h"整
..
我知道寄存器变量的概念及其用例,但根据我的尝试,我的脑海中几乎没有问题. 虽然我可以在 C++ 中访问,但我无法访问 C 中的寄存器变量的地址!为什么?访问寄存器变量的地址有什么问题吗? 假设如果我在 C++ 中将一个字符串变量声明为寄存器,那么该变量将存储在哪里?将C++中的'string'等非数字数据类型的存储类声明为register有什么意义? 更新:我认为 C++ 允许我
..
按照 这个问题的答案(开发 C 包装器面向对象的 C++ 代码的 API) 我设法为我的 C++ 代码编写了一个 C 包装器. 我想将我的包装器编译并链接到一个静态库(使用 g++ 编译),该库只能使用 gcc(而不是 g++)使用、编译和链接.这样库的用户就不必关心库是用 C++ 编写的. 这可能吗? 解决方案 此链接解释了一些编译器选项和场景:http://docs.ora
..
我正在尝试使用 -finput-charset 编译器选项在 g++ 中编译一个 UTF-16BE C++ 源文件,但我总是遇到一堆错误.更多细节如下. 我的环境(在 CentOS Linux 中): g++:4.1.2 图标:2.5 Linux 语言(在终端中):LANG="en_US.UTF-8" 我的示例源文件(以 UTF-16BE 编码存储): //main.cpp
..
/usr/bin/make -f nbproject/Makefile-Debug.mk SUBPROJECTS=.build-conf/usr/bin/make -f nbproject/Makefile-Debug.mk dist/Debug/GNU-MacOSX/cppapplication_1mkdir -p 构建/调试/GNU-MacOSXrm -f 构建/调试/GNU-MacOSX/m
..
我正在从 g++ 切换到 clang 但是,在 g++ 中,我有 -pthread 标志,clang 似乎无法识别. clang 中的等价物是什么? 编辑:我的 clang 版本是 2010 年 3 月 5 日从 svn 提取的. 解决方案 Clang 支持 -pthread.可能是最新版本,因此请更新并重试.
..
..
在线提供 g++ 编译器的错误/警告消息的完整列表吗? 我正在寻找类似于 MSDN 文档的内容,该文档描述了每条消息的含义,并且可能有一些示例代码来演示导致此类错误的条件. 我查看了 GCC 在线文档,但我什至没有看到一个简单的枚举所有可能的消息. 解决方案 很遗憾,没有这样的列表,只有 GCC 源代码自己定义了消息. 其中一些消息由 GCC 测试套件执行,因此如果您下载
..
我使用 g++ 的 -c 选项来创建一堆目标文件,它只让我为每个目标文件指定一个源文件.我想让多个文件进入其中的一些.有没有办法做到这一点? 解决方案 其他人提到了存档,但另一个选项是 Unity builds. 代替: g++ -c file1.cpp file2.cpp 创建一个单独的“统一文件" //这是整个文件(unity.cpp)#include "file1.cpp
..
根据this question的回答和评论,当引用变量被值捕获时,lambda对象应该制作被引用对象的副本,而不是引用本身.但是,GCC 似乎没有这样做. 使用以下测试: #include #include 使用 std::cout;使用 std::endl;int main(int argc, char** argv){诠释 i = 10;诠释&i
..
我想让 g++/gcc 告诉我在 C++ 构建中 #include-ing 的所有非系统的路径.事实证明,这是一个艰难的搜索,因为 Google 必须以十种不同的方式对其进行解释. 我想要这些文件名和路径,以便我可以将它们添加到 Exuberant CTAGS 的搜索路径中.我们有一个庞大的项目,如果我在整个项目上使用 ctags,生成标签文件大约需要半小时,而编辑器进行查找的时间几乎一样长
..
..
我已经在 cygwin 中安装了所有软件包.我还将 C:\cygwin\bin 添加到我的 PATH 变量中.但是当我尝试在命令行中编译一个 c++ 文件时,我收到错误“访问被拒绝".相同的命令在 cygwin 批处理窗口中工作.有谁知道怎么回事? 编辑:我更改了 gcc 和 g++ 的权限.我不再收到“拒绝访问"错误,而是收到一个新错误:“此版本的 C:\cygwin\bin\g++.ex
..
我一直被告知编译器足够聪明,可以消除死代码.我正在编写的大部分代码在编译时都有很多已知信息,但代码必须以最通用的形式编写.我不知道任何程序集,所以我无法检查生成的程序集.在最终的可执行文件中可以有效地消除什么样的代码? 几个例子但不限于 f(bool b){如果(乙){//一些代码}别的{//一些代码}}f(真);///////////////////////模板F(){如
..
我的 LIBRARY_PATH 环境变量中有一个自定义目录:/cs/public/lib/pkg/opencv/lib. 但是,当我使用 g++ --print-search-dirs 时,我得到了这个: 库:=/cs/public/lib/pkg/opencv/lib/x86_64-suse-linux/4.6/:/cs/public/lib/pkg/opencv/lib/../lib6
..
我需要在“发布模式"中构建并在 GCC 中进行全面优化的具体选项是什么?如果有多个选项,请列出所有选项.谢谢. 解决方案 http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html 没有“一刀切"——您需要了解您的应用程序、您的要求和优化标志,以确定您的二进制文件的正确子集. 或者你想要的答案:-O3
..
..
#include #include #include #include 使用命名空间标准;int main() {诠释n;cin>>n;向量一个);for(int i = 0; i >一个[我];int ans = a[0];for(int i = 1; i
..
..