问题标签 [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.

0 投票
2 回答
6165 浏览

c++ - OpenMP:不要使用超线程内核(半 `num_threads()` w/超线程)

g++ 4.7 中的 OpenMP (parallel for) 效率不是很高吗?2.5x at 5x CPU,我确定我的程序的性能在 11s 和 13s 之间变化(通常总是在 12s 以上,有时慢到 13.4s),在使用默认值时 CPU 大约为 500% #pragma omp parallel for,而 OpenMP 的速度提升仅为在g++-4.7 -O3 -fopenmp4 核 8 线程 Xeon 上,5 倍 CPU 时 2.5 倍。

我尝试使用schedule(static) num_threads(4),并注意到我的程序总是在 11.5 秒到 11.7 秒(总是低于 12 秒)内以大约 320% 的 CPU 完成,例如,运行更一致,并且使用更少的资源(即使最好的运行比慢半秒超线程的罕见异常值)。

是否有任何简单的 OpenMP 方式来检测超线程,并减少num_threads()到 CPU 内核的实际数量?

(有一个类似的问题,Poor performance due to hyper-threading with OpenMP: how to bind threads to cores,但在我的测试中,我发现仅仅从 8 个线程减少到 4 个线程就已经完成了 w/g++-4.7 的工作在 Debian 7 wheezy 和 Xeon E3-1240v3 上,所以,这个问题仅仅是关于减少num_threads()内核数量。)

0 投票
1 回答
525 浏览

arm - 为 arm-linux-gnueabi-g++ 的目标添加预取功能

以下代码行已arm-linux-gnueabi-g++-4.7在 Ubuntu 主机上使用交叉编译。prfm应该为特定行生成指令,但事实并非如此。

编译命令是:

在此处引用与该问题相关的gcc 参考中的一行:

如果目标不支持数据预取,如果地址表达式包含副作用但不生成其他代码并且 GCC 不发出警告,则计算地址表达式。

最后一条信息是交叉编译器是通过 using 安装的apt-get install,而不是从头开始安装的。

问题来了:

如何简单地将数据预取支持添加到arm-linux-gnueabi-g++-4.7交叉编译器的目标?

提前致谢

0 投票
0 回答
49 浏览

c++11 - centos6.5中存在g++(4.4和4.7)两个版本,g++4.7如何使用

我将学习c++11,所以我安装了g++4.7,当我使用时g++ --version,它显示4.4版本。但是当我使用时find / -name g++,它显示
/opt/centos/devtoolset-1.1/root/usr/bin/g++ /usr/bin/g++
第一个版本是4.7,第二个版本是4.4,如何将g ++ 4.7设置为默认值。谢谢!

0 投票
1 回答
872 浏览

c++11 - arm-linux-gnueabi-g++-4.7交叉编译c++11

我正在尝试使用带有 arm-linux-nueabi-g++-4.7 编译器的 std::future 编译一个示例;但是,我有以下错误:

user@user-virtual-machine:~/projects/prova$ arm-linux-gnueabi-g++-4.7 -pthread -std=c++11 -c main.cpp

main.cpp:在函数“int main()”中:

main.cpp:8:35:错误:变量“std::packaged_task task”具有初始化程序但类型不完整

有人可以告诉我我做错了什么吗?我将编译器安装为分发包。

代码:

0 投票
1 回答
230 浏览

ld - 如何强制 g++ 创建 C 符号名称

我在 cpp 文件中有一个名为 init 的函数,但是当我编译它时,g++ 在目标文件中创建了一个名为 _Z4initv 的符号,所以当我在 ld 之后使用选项 -e init 链接时,显然 ld 无法识别该符号在里面。有没有办法用 g++ 创建 C 风格的符号名称?

0 投票
2 回答
1037 浏览

matlab - 如何强制 MATLAB 2016a 使用 gcc-4.7.x 而不是我拥有的 (gcc-5.4.1)?

对于旧版本的 MATLAB,有一些关于此的帖子,但它们似乎不适用于 R2016a。

我正在尝试在 Ubuntu 16.04 上安装 MatConvNet。当我按照此处vl_compilenn所述运行命令时,它会给我一个警告,如下所示:

我已经安装了 gcc-4.7 和 g++-4.7 使用apt-get install gcc-4.7 g++-4.7. 如何强制 MATLAB 使用这些版本而不是默认版本?

0 投票
1 回答
579 浏览

c++ - g ++:尝试执行'jc1'时出错:execvp:没有这样的文件或目录

我试图使用 g++ 编译我的 cpp 代码,每次我得到这个错误:

我正在执行这个命令:

我的 cpp 程序包含与 oracle db 连接的代码。我的cpp代码如下:

0 投票
1 回答
128 浏览

c++ - 使用嵌套枚举的模板参数重载 C++ 友元运算符

我在使用嵌套枚举的模板参数重载朋友位运算符时遇到了一个问题。

最初我遇到了专有嵌入式 C++ 编译器的问题。之后我尝试了 gcc、clang 和 MSVC 并得到了完全相同的失败。除了,我尝试过的任何 5.0 之前的 GCC 版本都能够编译示例代码。使用任何编译器选择 C++ 标准似乎没有任何区别。

这是一个例子

编译器看不到运算符 | . 如果我将运算符重载移动到结构定义的下方,代码就会编译。虽然它不再是朋友功能了。

但是,编译稍有不同的代码示例没有任何问题。

我在这里想念什么?