26得票5回答
"g++"未被识别为内部或外部命令,MinGW

我使用的是Windows 7 x86操作系统,在电脑上安装了MinGW,设置好环境变量后,在cmd.exe中输入g++ -v命令时,显示如下信息:"g++" is not recognized as an internal or external command. 但是当我输入make -v命...

7得票1回答
C++编译错误:“pair”未命名类型

我正在尝试使用g++编译器编译一个非常简单的C++程序。 //main.cpp #include <stdio.h> using namespace std; typedef pair<int,int> pii; int main(int argc, cha...

7得票1回答
为什么编译器会在每次循环迭代时将成员变量写入内存?

第一个版本通过将一个值从内存移动到一个本地变量中进行优化。第二个版本没有这样做。 我原以为编译器会在这里选择进行localValue优化,而不是在循环的每次迭代中读写内存中的值。为什么它不这样做呢? class Example { public: void proc...

11得票4回答
constexpr问题:为什么使用g++编译时这两个不同的程序运行时间差异如此大?

我正在使用 gcc 4.6.1 编译器,并且在调用一个 constexpr 函数时遇到了一些有趣的行为。这个程序可以顺利运行,直接输出了 12200160415121876738。#include <iostream> extern const unsigned long joe...

25得票3回答
简单的Makefile中的发布版和调试版构建 - 最佳实践

我对makefile很陌生。我从“使用GNU make管理项目”这本书中学习了如何创建makefile以及其他相关概念。现在,我的makefile已经准备好了,我需要确保我创建的makefile是正确的。下面是我的makefile:#Main makefile which does the b...

20得票7回答
未知类型名称 'off64_t'

在Ubuntu上使用GCC 4.8.1编译Apache Portable Runtime时遇到了问题。 问题是,当使用gcc编译时,来自<sys/types.h>的off64_t不可用。(使用g++编译一切正常) 有人知道该使用哪个编译器开关以启用off64_t吗?(我知道定义...

7得票2回答
为什么移动构造函数被定义而赋值运算符被隐式删除?

struct Foo { Foo() = default; Foo(Foo&&) = default; }; int main() { Foo a, b; a = b; // ^ return 0; } 错误: 使用已删除的...

25得票9回答
C++函数模板的特化可见性

假设我有一个名为fileA.h的文件,它声明了一个带有模板函数SomeFunc<T>()的classA类。这个函数在头文件中直接实现(对于模板函数来说通常是这样)。现在我在fileA.C中添加了SomeFunc()的专门实现(例如SomeFunc<int>()),而不是...

8得票6回答
编译的C++程序在另一个系统上运行时会出现“无法打开共享对象文件”的错误,尽管该文件已经存在。

我写了一个小程序,需要一些库,包括libboost_filesystem、libboost_program_options和libcurl。 我在家里的电脑上编译它,然后把二进制文件带到公司电脑上测试。但是当我尝试启动程序时,它会显示以下错误信息: error while loading ...

22得票1回答
在C++中的抽象语法树表示

我已经有了创建令牌列表的分词器接口,并且已经实现了解析器的工作机制,它非常独特,运行得非常好。我所缺少的只是AST的基本结构,以及如何在抽象层面上表示树、节点和语句的方式。我不需要任何实现,只需要快速了解类层次结构中应该看起来像什么? 我正在开发一种面向对象的语言。是的,我已经意识到我将需要两...