问题标签 [g++-4.7]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 使用 Matrix Template Library 2 和 g++ 4.7 构建错误
几年前,我不得不MTL 2
在我职业生涯的最后一个项目中使用该库(这是一项强制性要求)。我必须处理现有的(而且相当旧的)代码,而我使用的编译器是g++ 4.4
.
现在,我想继续致力于该项目以尝试改进它。我想用一些C++11
功能,既然Debian Wheezy
自带了g++ 4.7
,我想我会用的。
因此,我安装MTL 2
并尝试编译该项目。但是我收到了一个关于未知的错误ptrdiff_t
:
谷歌了一下,我发现由于g++ 4.6
标准标题中的某些内容发生了变化,并且我需要包含cstddef
标题才能ptrdiff_t
知道(a)。
所以我将该头MTL 2
文件包含在使用ptrdiff_t
和重新编译项目的文件中。但是,出现了一个新错误:
我的问题是,是否有一种方法可以MTL 2
与g++ 4.7
编译器一起使用,或者使用更新的版本并调整代码是否更好?(或使用与以前相同的编译器,g++ 4.4
)
(a)我将cstddef
标题直接包含在MTL
文件中。我应该在项目文件中完成它吗?
c++ - c ++输入直到通过键盘发出信号的输入结束
我想编写一个 C++(C,如果它为我的问题提供简单的解决方案)程序,可以在其中输入,直到他选择通过按 Ctrl+D 等按钮组合来表示输入结束。我对此有两个问题。
- 哪些组合键用于表示Xterm中的输入结束?(Ctrl+C 或 Z 不起作用)
while()
当一个人按下1中回答的组合键时,我的循环中的逻辑代码应该是什么?}
程序在从终端接收到输入信号结束时继续。
我用gcc/g++ (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3
.
cuda - 带有 g++ 4.7 和 4.8 的 CUDA 5.5 RC:__int128 构建错误
我正在尝试在 MacOS X 10.8 上使用 CUDA SDK 5.5 RC 和 g++ 4.7 编译一些代码。如果我理解正确,CUDA 5.5 应该适用于 g++ 4.7。查看 /usr/local/cuda/include/host_config.h 它甚至应该适用于 g++ 4.8。
关于 g++ 4.8:我尝试编译以下程序:
但它失败了:
相同的程序使用 g++ 4.7 编译和运行:
但如果我包含 <limits>...
...即使 g++ 4.7 也失败了。构建日志位于此处:https
:
//gist.github.com/lysannschlegel/6121347 您还可以找到一些其他错误,我不完全确定它们是否都与 __int128 缺失有关。
很可能其他标准库也包括破坏 g++ 4.7 的构建,限制是我绊倒的那个。
我还尝试了 g++ 4.5,因为我的机器上也有它(你永远不会有太多的编译器版本,对吗?),它可以工作。
我可以期望这将在 CUDA 5.5 版本中得到解决吗?(我希望 NVIDIA 不只是回到支持 gcc 直到 4.6 版。)
在此期间有没有办法解决这个问题?
更新:
正如@talonmies 在下面指出的那样,这严格来说不是 MacOS 上的 CUDA 5.5 中的错误,因为 MacOS 上不正式支持 gcc。由于许多第三方库不能正确处理支持的工具链、clang 或 llvm-gcc(llvm-gcc 来自 2007 年......),因此仍然需要让 gcc 工作。高达 4.6 的 gcc 应该可以正常工作(我只测试了 4.5)。
您可以使用@BenC 在评论中指出的技巧使 gcc 4.7 工作:
带有 gcc 4.8 的 nvcc 仍然在 cstdlib 中的 __int128 上阻塞。我猜 cstdlib 是在包含 --pre-include 文件之前包含的。
c++11 - 在 g++ 4.7.2 上使用 -std=c++11 的 CppUTest 错误
我一直在使用带有 g++ 4.7.2 的 CppUTest 一段时间,没有出现任何问题。但是,我刚刚打开了该-std=c++11
选项,因此我可以开始使用std::unique_ptr
它并立即失败。
即使只是编译主模块:
因以下变化而失败:
删除该-std=c++11
选项会使一切再次正常工作。
CppUTest 文档对与重载的新运算符冲突的宏进行了一些评论,并建议首先#include 标准头文件,但我在根本不包含任何头文件的情况下遇到了这个问题,尽管它看起来像是CppUTest/CommandLineTestRunner.h
包含了<string>
它自己。
有人遇到过这个问题或知道问题是什么吗?
c++ - 重载 'Point_(cv::Point2f&)' 的调用不明确
我正在为 OpenCV2 和 C++ 编写一些示例代码,但我被卡住了。编译器(Win7 上的 MinGW,g++ 4.7.2)说重载 'Point_(cv::Point2f&)' 的调用是模棱两可的,但我找不到确切的问题所在。这是错误:
这是代码:
我做错了什么?
编辑:我希望一些投反对票的人尝试解决这个问题。这不是这种类型的唯一问题,但我的已经被否决了 3 次?
此外,这是来自加拿大教授( http://www.laganiere.name/opencvCookbook/ )的书中的示例,他同时教授 OpenCV,我应该比他更好吗?我应该为我问这个感到羞耻吗?我是 C++ 和 OpenCV 的新手?我是否应该在其他十个论坛上提问,然后只有在 Stackoverflow 上找不到答案时才提问?
此外,我并不懒惰,我通过重写他的代码来帮助这个人(OpenCV:在一个窗口中录制镜头并在第二个窗口中显示相同的视频,但仅包含轮廓)。我帮助了一个比我了解少的人。但是,在这种情况下,我只是不知道如何在这段代码中解决这个问题,但在 30 分钟内我得到了三个反对票?
更新:正如 OpenCV 社区向我指出的那样,实际上应该允许将 Point 转换为 Point2f,反之亦然,但是版本 2.4.3 中的错误(http://code.opencv.org/issues/2616#note-1)阻止它这样做。这就解释了为什么几年前这段代码是为原作者编译的,而不是为我编译的。无论如何,用户@alrikai 为此提供了正确的答案和解决方法。
错误更正为:cv::circle(result, cv::Point2f(center), static_cast(radius), cv::Scalar(0), 2); 所以 cv::Point(center) 变成了这个 cv::Point2f(center)
c++ - g++ 4.7.2 对使用类型别名的处理似乎被破坏了
在以下代码中,g++ 4.7.2 似乎被using
基于类型别名的混淆。
编码:
编译代码:
意外的编译时错误:
有问题的行有什么问题?代码是否违反了 C++11 标准或者这是一个 g++ 4.7.2 错误?g++-4.7 中的实时代码
c++ - 将文本、csv、excel 文件放入模式中
我是真正编程的初学者并且有 ff 问题我想读取存储在文件/csv/txt/excel 中的许多实例,如下所示
然后当我阅读这个文件时,它会遍历每个字符并从六个位置开始,一直持续到第 11 个位置——单行的最大大小为 12
这是我在 python 中尝试过的代码。但可以在 c++、java、dotNet 中使用。
我的问题是如何比较每个字符串并在最右边分配一个字符(位置 12,如 G、P、S 上方)
对齐第一行后如何向后退一步?
我怎样才能固定长度
请任何人查看片段并调整以解决上述情况
c++ - ==24303== 未初始化的值是由堆分配创建的
Valgrind 抱怨 new (第一个)的行:
我想解释一下,该字段lg_maxi_buf
是 Audio_decoder 类的一部分,它的声明如下:
在类Audio_decoder的构造函数中lg_maxi_buf
是这样初始化的:
感谢您的回答。我想我将不得不使用智能指针,但我对它们的了解很差。
c++ - C++ 中的向量在 Windows 和 Ubuntu 中的行为不同
我必须比较存储在向量中的两个字符串。比较在使用 mingw-g++ 编译器(版本 4.4.1)的 Windows 中运行良好。
但是当我尝试在运行 g++ 4.7.2 版的 Ubuntu 中做同样的事情时,我遇到了奇怪的问题。我在下面列出了它们:
当我尝试单独打印元素时,它们给出了正确的输出并且两个字符串都是相同的。
但是当我尝试使用 == 运算符或 strcmp() 比较它们时,即使它们相同,它们也不相等。
当我尝试打印上面比较的元素时,某个字符串正在替换第一个字符串的值。代码如下。理想情况下,不应该执行 if 循环,但它仍在执行并打印一些垃圾值而不是 v1[i]。
我不知道如何搜索这些错误。我从同一个文件中获取字符串并存储在 Windows 和 Ubuntu 中的向量中。
编辑:我在这里附上部分代码。右侧的函数返回字符串向量。我不能粘贴上面类的代码,因为它是非常大的代码。
c++ - Scons 选择哪个版本的 g++ 无法识别的命令行选项“-std=c++11”
在 OpenSUSE 中使用 Scons 2.3.0 时遇到问题:
当我添加“-std=c++11”选项时,我看到了错误
我意识到这是因为我的 g++ 版本太旧(4.1)。所以我把它升级到4.7.1。下面的事情也完成了
- 我将 g++4.7.1 的路径移到 $PATH 中的第一位(在 /usr/bin 之前)
当我尝试
我看到它显示了我的新 g++4.7.1 的路径
当我尝试时,
g++ -v
我还看到了 4.7.1 版本在不使用 scons 的情况下,如果我尝试使用 构建一个简单的 helloWorld
g++ -std=c++11 helloWorld.cpp
,一切正常。现在通过使用 scons,我看到了
cc1plus: error: unrecognized command line option "-std=c++11"
- 我什
s.system("g++ -v")
至在我的 SConstruct 文件中添加,它仍然打印正确的版本(4.7.1)
所以我不确定我做错了哪一部分。
请给我一些建议
在此先感谢您的帮助!