g++相关内容
我正在试验 C++0x 线程,部分在 gcc 4.5 中实现,但我遇到了一个我无法理解的问题.让我们看看这段代码 #include #include 主函数(){std::cout
..
我最近探索了 distcc 并且无法使其工作.所以我 sudo apt-get remove distcc 然后,我得到错误 ==>处理catkin包:'gencpp'==>使用 env 构建:'/opt/ros/kinetic/env.sh'Makefile 存在,跳过显式 cmake 调用...==>在'/home/pi/ros_catkin_ws/build_isolated/genc
..
我们通常使用 -O2 进行编译,因为 -O3 会“触发细微的错误". 对于我们的 GCC 版本,-O3 启用了更积极的内联,这实际上会揭示否则未被注意到的错误(例如,使用来自函数的未初始化值将它们作为引用参数或数组的越界访问).在我看来,这种激进的内联还允许使用更小的函数以更具表现力的方式进行编码,并且 -funswitch-loops 有助于使变量定义在循环中更加本地化. 鉴于我们代
..
前几天有人问为什么有些东西可以用clang编译,但不能用gcc编译.我直观地理解正在发生的事情并能够帮助这个人,但这让我想知道——根据标准,哪个编译器是正确的?这是代码的简化版本: #include #include 类 foo{上市:foo(const std::string& x):姓名(x){ }foo&operator()(const std::string
..
为什么会出现此警告?如果我检查界限,这并不是一个真正的假设.以及如何解决? 如果 num_actions_to_skip 设置为 1,而不是 2,则错误消失. 谢谢 错误:假设 (X - c) = 0 && loc
..
我有带有 gcc 4.8.2 的 Ubuntu 12.01,并希望针对运行旧 2.6.23 内核的 Vortex86DX CPU 进行交叉编译. 我正在尝试以下测试代码: #include 主函数(){std::cout
..
注意:这是一个question-with-answer,以便记录其他人可能认为有用的技术,以便了解其他人"更好的解决方案.请随意添加批评或问题作为评论.也请随意添加其他答案.:) Visual C++ 一直有一个语言扩展 __uuidof(classname) 可以检索 UUID,一个 128 位的通用唯一标识符,前提是 UUID 已通过 __declspec 与类关联,这也是 Visual
..
我知道标题有点混乱.让我用一点背景来澄清我的问题: 就执行时间而言,当我使用 -O1 标志与 -O0 标志进行编译时,我的程序的行为很奇怪.我知道 -O1 标志做了许多优化,例如 fauto-inc-dec -fbranch-count-reg -fcombine-stack-adjustments (根据手册页超过 40).为了弄清楚是哪些优化导致了这种行为,我计划一次删除一个标志,然后编
..
根据 g++ -print-search-dirs 我的 C++ 编译器正在许多目录中搜索库,包括... /lib/../lib/: /usr/lib/../lib/: /lib/: /usr/lib/ 天真地,/lib/../lib/ 似乎与 /lib/ 是同一目录 —lib 的父母将有一个名为 lib 的孩子,“那个人的父亲的儿子是我父亲的儿子的儿子"等等./usr/lib/
..
问题 为什么编译具有 int main(void) 主函数的程序与编译具有 int main(int argc, char *argv[]) 的程序不同 main 函数,如果程序不使用命令行传递的参数? 这个操作系统或编译器是特定的吗?我使用 mingw 和 g++ 没有得到相同的结果(这很奇怪,因为wingw 是 gcc 的一个端口). 示例 代码 #include
..
当我尝试通过发出命令编译此文件时,“g++ qr.cpp -o qr"系统挂起.我在其他任何地方都没有看到过这种错误. #include使用命名空间标准;布尔赢[1000000001];布尔知道[1000000001];int Sixes[] = {6, 36, 216, 1296, 7776, 46656, 279936, 1679616, 10077696, 60466176, 362797
..
如我所见:http://gcc.gnu.org/projects/cxx0x.html 不幸的是,gcc 还不支持 thread_local 关键字. 有没有其他选择?我不想使用 boost 库. 解决方案 gcc 编译器有一个存储类 __thread 可能足够接近. http://gcc.gnu.org/onlinedocs/gcc-3.3.1/gcc/Thread-Loca
..
考虑以下代码: #include #include #include 使用命名空间标准;结构 A{诠释一个;A(int a_):a(a_) {}};主函数(){向量>作为;for (int i = 0; i >::iterator it = as.begin(); it != as.end(); ++it)cout 在尝试编译它时,
..
我有一个 C 文件的静态库,在 Cygwin 上用 g++ 编译.我希望对库中定义的一个函数进行单元测试.该函数调用该库中定义的另一个函数,我希望覆盖依赖项以用我自己的该函数版本替换它.我无法修改静态库中的内容,所以这个解决方案 [ Override a function call inC ] 不适用. 通常,我可以编写一个 .cpp 文件并包含包含我要进行单元测试的函数的 .c 文件,该文
..
std::optional 在 C++ 17 中,之前是 std::experimental::optional. 我尝试使用以下命令编译包含 的文件: g++ -std=c++17 .cpp (在 Bash 终端中).我收到以下错误: .cpp:5:20 致命错误:可选:没有这样的文件或目录#include ^编译终止 但我可以 #include
..
我在 g++ (GCC) 4.7.2 上遇到编译错误,但在尝试 std::vector::push_back 时却没有代码> 不可复制(私有复制构造函数)但可移动的对象.对我来说,我的示例看起来与 SO 和其他地方的许多其他示例相同.错误消息使它看起来像结构不是“直接可构造"的问题 - 我不知道这意味着什么,所以我非常不确定为什么对象需要“直接构造"才能被推回. #include
..
xargs 应用程序在 Unix 中的使用示例如下: ls |xargs 回声 这与(假设我在工作目录中有 someFile 和 someDir/ 相同): echo someFile someDir 所以 xargs 获取它的输入并将其放在下一个命令的末尾(这里是 echo 的末尾). 但有时我希望 xargs 将其输入放置在下一个命令的中间位置. 例如: 找到 .-typ
..
例如,哪个gcc版本支持c99? 是否有任何表格或图表显示 gcc 和 g++ 的标准支持状态? gcc 和 g++ 是如何演变的? 谢谢~ 解决方案 非常严格地说,GCC 从 4.3 开始肯定只支持 C89、C++98 和 C++03. 到目前为止,对 C99 的支持仍然不完整,但 GCC 长期以来一直支持一个非常大且可用的子集. 实验性的 C++11 支持
..
我对 cpp 还很陌生,我正在尝试做一个项目.它说代码必须以文件名作为参数,并将由以下人员运行: ./main -i 文件名 我编写了一个 for 循环,它将遍历参数列表以找到“-i"参数,以便确定文件名.但是这一行总是返回 false: argv[i] == "-i" 下面是我的代码: #include #include int main(int a
..
我试图将一个静态库(用 gcc 编译)链接到一个 c++ 程序,但我得到了“未定义的引用".我在 ubuntu 12.04 服务器机器上使用了 gcc 和 g++ 版本 4.6.3.例如,下面是阶乘法的简单库文件: mylib.h #ifndef __MYLIB_H_#define __MYLIB_H_整数阶乘(整数 n);#万一 mylib.c #include "mylib.h"整
..