问题标签 [gcc4.5]

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 投票
1 回答
544 浏览

c++ - 错误:“模板”(作为消歧器)只允许在模板中使用

我有以下定义:

问题是,当我尝试使用 gcc 4.5.3 编译它时,出现以下错误:错误:“模板”(作为消歧符)仅允许在标有 (*) 的模板中使用。在 Visual Studio 2008 中,它可以编译。

这是什么原因?如何解决?

0 投票
0 回答
133 浏览

boost-log - 提升日志错误

大家好!

我尝试使用使用 boost log (boost 1.53) 的 gcc 4.5 应用程序构建。我收到以下错误:

在 Modules/3rdParty/Boost/Include/boost/log/common.hpp:27:0 包含的文件中,

来自 Modules/Core/Common/Include/Common/Logger.h:5

Modules/3rdParty/Boost/Include/boost/log/sources/basic_logger.hpp:在成员函数'void boost::log::v2s_mt_posix::sources::basic_logger::push_record_unlocked(boost::log::v2s_mt_posix::record&& )':

Modules/3rdParty/Boost/Include/boost/log/sources/basic_logger.hpp:268:46: 错误:没有匹配函数调用'boost::log::v2s_mt_posix::core::push_record(boost::remove_reference: :类型&)'

Modules/3rdParty/Boost/Include/boost/log/core/core.hpp:306:49:注意:候选人是:void boost::log::v2s_mt_posix::core::push_record(boost::log::v2s_mt_posix: :记录&&)

当我使用 gcc 4.7 时一切正常,但我需要 gcc 4.5。我该如何解决?谢谢!

0 投票
1 回答
962 浏览

c++ - 为 GCC 4.5.3 模拟 nullptr & nullptr_t

由于一些遗留原因,我坚持使用 MIPS-GCC 4.5.3。但是我试图编译的代码大量使用了 C++11 nullptr & nullptr_t,这是 GCC 4.5.3 中缺少的功能。

经过一番谷歌搜索并开始使用后,我最终创建了一个nullptr wrapper如下所示的内容,但不幸的是它不能满足某些用例,

这里的主要情况是unsigned* case5 = argc > 2 ? (unsigned*)0 : nullptr;

IDEONE 快照:http: //ideone.com/m1mhtB

(感谢http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf

任何提示/建议将不胜感激:)

(注意:请避免像升级你的 gcc这样的答案)

0 投票
1 回答
1285 浏览

gcc - 使用已安装的 GCC-4.5.3 时出现编译错误(ld:找不到 libmvec_nonshared.a、libmvec.so.1)

从 GCC 版本 4.6 开始,无法使用 GCC-4.8.5 打印回溯或堆栈转储,默认设置已更改为 -fomit-frame-pointer。通过使用 --enable-frame-pointer 配置选项配置 GCC,可以将默认值恢复为 -fno-omit-frame-pointer 一样在互联网上阅读。因此,我使用以下配置选项在我的主目录中安装了 GCC-4.5.3。

配置选项:

在包含我安装的 GCC 编译器之前,我的 Makefile.common 如下所示:

安装后,我在 Makefile.common 中包含了编译器,如下所示:

包括当我尝试发出 make 命令后,它失败并出现以下错误

我还观察到这两个库都存在于另一个路径中,而不存在于上述(/usr/lib64/、/lib64)路径中。我无权运行 sudo 命令或创建链接或在 /usr/ 路径中进行任何更改。下面是我运行 ld -lmvec --verbose 时的输出。

笔记:

使用 GCC_4.8.5 制作成功,而我安装的 GCC_4.5.3 制作失败。

谁能帮我解决这个问题?我需要更改 Makefile.common 中的任何内容吗?为什么使用 GCC_4.8.5 制作成功而 GCC_4.5.3 失败?

如何在 Makefile 中进行更改以在库当前路径中进行 ld 搜索?

除了这个查询之外,任何人都可以帮我检查是否省略了帧指针?

提前致谢。