g++相关内容

如何获取 POSIX strerror_r 而不是 GNU 版本?

我如何获得 POSIX strerror_r 而不是 GNU 版本? 我在 Ubuntu 8.04 上使用 g++ 和 glibc 2.7 版进行编译(基于其中的内容). 编辑 在上面的手册页上写着: glibc 的功能测试宏要求(参见 feature_test_macros(7)): 在以下情况下提供 strerror_r() 的 XSI 兼容版本:(_POSIX_C ..
发布时间:2022-01-23 20:49:25 其他开发

在 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++开发

g++:尝试执行“cc1plus"时出错:execvp:没有这样的文件或目录

我使用的是 ubuntu 12.04.我正在尝试“制作"一个项目. 我收到此错误: g++: 尝试执行 'cc1plus' 时出错: execvp: 没有这样的文件或目录 我已经安装了 g++. 解决方案 我尝试了@MonoThreaded 给出的命令,但它失败了.我在下面尝试过,它可以工作. sudo apt-get install g++ 请不要在 g++ 之后包 ..
发布时间:2022-01-23 20:48:14 其他开发

未初始化的常量

使用当前的 MSVC 编译器可以完美编译: struct Foo{} 常量 foo; 但是,使用当前的 g++ 编译器编译失败: 错误:未初始化的 const 'foo' [-fpermissive]注意:“const struct Foo"没有用户提供的默认构造函数 如果我自己提供一个默认构造函数,它会起作用: struct Foo{富(){}} 常量 foo; 这是 MSVC 过于 ..
发布时间:2022-01-23 20:47:49 C/C++开发

g++模板参数错误

我有如下 GetContainer() 函数. 模板集装箱&ObjCollection::GetContainer(){返回 mContainer;} 当我如下使用这个方法时 模板夯;DynamicObjCollection::Insert(T&t){GetContainer().insert(&t);返回 t;} 我遇到了错误. 错误:‘GetContainer’没有依赖于模 ..
发布时间:2022-01-23 20:47:35 C/C++开发

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

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

针对“.rodata"重定位 R_X86_64_32S ...在 64 位平台上编译时

所以我一直在编写 32 位代码,昨天我需要构建一个 dll,但我遇到了一些问题.无论如何,我在这里解决了它们.p> 不幸的是,即使我认为一切正常,但当我将程序和 makefile 移到其他运行 64 位的计算机上时发现情况并非如此,你可以猜到发生了什么...... 所以我的问题与搬迁有关,因为 64 位 /usr/bin/ld: MyClass.o: relocation R_X86_6 ..
发布时间:2022-01-23 20:47:03 C/C++开发

使用 clang++、-fvisibility=hidden、typeinfo 和 type-erasure

这是我在 Mac OS X 上使用 clang++ 时遇到的问题的缩小版本.经过认真编辑,以更好地反映真正的问题(描述问题的第一次尝试没有表现出问题). 失败 我在 C++ 中有这么大的软件,在目标文件中有大量符号,所以我使用 -fvisibility=hidden 来保持我的符号表很小.众所周知,在这种情况下,必须特别注意 vtables,我想我面临这个问题.但是,我不知道如何以一种 ..
发布时间:2022-01-23 20:46:55 C/C++开发

g ++编译器标志以最小化二进制大小

我有一个 Arduino Uno R3.我正在使用 C++ 为我的每个传感器制作逻辑对象.Arduino 的板载内存非常有限,只有 32KB*,平均而言,我编译的对象大约 6KB*. 我已经在使用尽可能少的所需数据类型,以尽量减少我的内存占用.是否有编译器标志来最小化二进制文件的大小,还是我需要使用更短的变量和函数名称、更少的函数等来最小化我的代码库? 此外,任何其他关于最小化二进制大 ..
发布时间:2022-01-23 20:46:26 C/C++开发

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

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

禁用 C++ 异常,如何使任何 std:: throw() 立即终止?

这个 C++ 程序是一个 CGI 脚本,我不想处理异常.我宁愿获得边际性能提升,并让操作系统(Linux)在进程终止后处理清理. 我正在使用标准 C++ 库,并且希望任何函数die 就像在 Perl 中一样:只要它抛出异常. 不展开,或运行任何进一步的代码在我的过程中. -fno-exceptions 是如何工作的?如果我的代码中根本没有捕获,并且基本上假装不存在异常.但我确实使用可以 ..
发布时间:2022-01-23 20:45:51 C/C++开发