草庐IT

gcc12.2.0

全部标签

c++ - GCC 7,aligned_storage 和 "dereferencing type-punned pointer will break strict-aliasing rules"

我编写的代码在GCC4.9、GCC5和GCC6中没有警告。它在一些较旧的GCC7实验快照(例如7-20170409)中也没有警告。但在最近的快照(包括第一个RC)中,它开始产生关于别名的警告。代码基本上可以归结为:#includestd::aligned_storage::typestorage;intmain(){*reinterpret_cast(&storage)=42;}使用最新的GCC7RC编译:$g++-Wall-O2-cmain.cppmain.cpp:Infunction'intmain()':main.cpp:7:34:warning:dereferencingtyp

c++ - 在 Qt Creator Ubuntu 12.04 中设置 OpenCV

我正在尝试在QtCreator中设置OpenCV,但遇到了一些问题。我在QtCreator.pro文件中添加了OpenCV路径INCLUDEPATH+=/usr/local/include/opencvLIBS+=-L/usr/local/lib\-lopencv_core\-lopencv_imgproc\-lopencv_highgui\-lopencv_ml\-lopencv_video\-lopencv_features2d\-lopencv_calib3d\-lopencv_objdetect\-lopencv_contrib\-lopencv_legacy\-lopencv

c++ - 如何将 GCC 诊断编译指示与 C++ 模板函数一起使用?

我想使用g++和-Werror,所以我现在必须禁用我无法控制的第3方库的警告。http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html提供的解决方案工作得很好,允许简单地用pragma包装第3方header的包含。不幸的是,在涉及模板的特定设置中,这不再适用于我。我创建了以下最小示例,说明此方法未按预期工作的地方:源文件main.cpp#pragmaGCCdiagnosticignored"-Wunused-parameter"#include"hdr.hpp"#pragmaGCCdiagnosticerror"-Wunused

c++ - 如何让 GCC 打印有用的 RUNTIME 错误消息?

#defineing_GLIBCXX_DEBUG强制GCC捕获C++中的一大类运行时错误,例如越界STL访问、无效迭代器等。不幸的是,当错误发生时,打印的消息不是很有帮助。我自己知道如何使用函数打印回溯,以及如何使用宏打印__FILE__和__LINE__。有没有一种简单的方法可以说服GCC这样做,或者指定一个函数/宏供它在_GLIBCXX_DEBUG捕获的那种错误实际发生时调用? 最佳答案 我假设您的意思是您想要打印代码中使用上下文的消息,而不是GCC使用的某些内部头文件的文件名和行号。.../debug/macros.h中似乎有

c++ - 加载共享库时出错 : libgomp. so.1 : , GCC 版本错误?

在执行第3方C++程序时出现以下错误:加载共享库时出错:libgomp.so.1:无法打开共享对象文件:没有这样的文件或目录libgomp.so.1库是GNU编译器集合OpenMP运行时库。这是GCC包的一部分吗?我可以在具有gcc-4.5的系统上运行该程序,但不能在具有gcc-4.3或gcc-4.6的系统上运行。或者我需要安装另一个包吗?我尝试通过下载库并将其放在LD_LIBRARY_PATH中,在使用gcc-4.3的系统上手动修复此问题,但随后我得到了另一个丢失的库:/usr/lib/libstdc++.so.6:版本`GLIBCXX_3。4.11'未找到。libstdc是GNU标

c++ - 为什么 GCC 不能将此使用声明解析为正确的类型

在我正在从事的项目中编写代码时,我发现了一些非常奇怪的事情:namespacedetail{structtuplelike_tag{};structarraylike_tag{};templatestructcall_with_traits;templatestructcall_with_traits>{usingtag=tuplelike_tag;enum{size=sizeof...(Ts)};};templatestructcall_with_traits>{usingtag=arraylike_tag;enum{size=Sz};};templatestructcall_wit

c++ - 如何编辑和重新构建 GCC libstdc++ C++ 标准库源代码?

我正在进行一些研究,并且想编辑libstdc++库中的一些源代码以进行实验。具体而言,我对试验并行排序算法很感兴趣。有什么地方可以找到文档来轻松编辑和构建源代码吗?我曾尝试构建各种版本的libstdc++库,但均未成功。似乎大多数新版本都需要构建整个gcc包,这是一个漫长得多的过程,尤其是当我要在libstdc++中编辑和试验一些文件时。我也找不到包含并行排序算法的源文件。我似乎只能找到定义函数的头文件,而不是源代码本身。非常感谢任何建议或文档链接。 最佳答案 是的,您必须构建整个GCC,但是一旦完成,您只需要重建libstdc++

c++ - GCC 中的 __attribute__((init_priority(X)))

我在GCC中使用__attribute__((init_priority(X)))是这样的:Type1__attribute__((init_priority(101)))name1=value1;Type2__attribute__((init_priority(102)))name2=value2;在不同的源文件中。比方说file1.cpp和file2.cpp。如果我在同一个库中使用它,它会按预期工作,name1在name2之前初始化,但如果我在不同的库中使用它,则初始化顺序不是预期的顺序。我在gcc文档中读到这应该像我期望的那样在不同的库中工作,以定义初始化的顺序。我使用它的方式

释放云算力 繁荣云生态,12 位技术专家解读智算时代下的云计算 | 附PPT下载

近日,以“释放运算力 繁荣云生态”为主题的龙蜥操作系统大会阿里云分论坛圆满举办。分论坛上,来自阿里云、上海交通大学、英特尔、千寻位置等企业、高校的12位技术专家,从硬件协同、生态建设等方面,共同探讨了智算时代下的云计算。龙蜥社区与阿里云云市场、计算巢重磅发布了《Alibaba Cloud Linux 伙伴招募计划》,该计划将把来自阿里云的技术积累和推广资源、商业资源,与龙蜥社区开放强大的生态力量和技术协同相结合,号召服务商伙伴们进行共建,让用户享受更好的体验。过去三年,阿里云结合龙蜥社区技术为用户提供多样性迁移方案,解决CentOS停服的影响、为跨架构迁移提供全链路保障。(图/阿里云分论坛现场

c++ - 关于gcc O3 optimization flag的疑惑

我有g++4.7.3编译器。我正在尝试遵循优化标志描述http://gcc.gnu.org/onlinedocs/gcc-4.7.3/gcc/Optimize-Options.html下一个问题:我有一个程序,它使用-O2和-O3标志给出不同的时间。-O2比-O3快两倍。O2时间为8毫秒,O3时间为16毫秒。所以我想了解到底是什么造成了差异。在上面的链接中,我看到:“O3优化更多。-O3开启所有由-O2指定的优化,同时开启-finline-functions、-funswitch-loops、-fpredictive-commoning、-fgcse-after-reload、-ftr