草庐IT

c++ - 如何使用 gcc 和 intel 静态库进行编译?

我有一个用gcc编译的程序。我得到了一个用英特尔编译器(icc)编译的静态库(.a文件)。我如何使用和链接该库?(我没有icc,对方必须使用icc才能使用Intel指令集)。我正在尝试编译(链接到那个库)但是我在Intel指令上遇到错误...我的目标是IntelI7。我遇到的第一个错误是:“对`_intel_fast_memcpy'的undefinedreference”谢谢 最佳答案 请查看英特尔C++编译器论坛主题中提供的建议:https://software.intel.com/en-us/forums/intel-c-com

c++ - 将 header 添加到项目设置中的每个文件(gcc -include)

我有一个项目使用gcc-includefile.h正如gcc文档所说,这确保了file.h包含在以这种方式编译的每个文件中(这意味着每个其他文件中都有#include"file.h")。现在我已经将这个项目导入到eclipse中,我在该文件所在的位置设置了包含路径,但无法弄清楚如何在eclipse项目设置中执行类似gcc-include的操作。这样做的结果是,在编辑器中我有很多“符号xy无法解析”,但项目编译得很好。感谢您的帮助。 最佳答案 您可以逐个项目更改CDTGCC内置编译器设置。转到项目->Properties->C/C++

c++ - 干净地抑制 gcc 的 `final` 建议警告 (`-Wsuggest-final-types` 和 `-Wsuggest-final-methods` )

我喜欢使用-Wsuggest-final-types编译我的代码和-Wsuggest-final-methods以便在可能使用final关键字以允许编译器更积极地优化的机会时收到警告。不过,有时这些建议是不正确的-例如,我有一个类Base和一个virtual~Base()析构函数,在另一个项目中以多态方式使用,gcc建议我可以将Base标记为final。有没有办法“干净地”告诉编译器Base是多态使用的,不应该被标记为final?我能想到的唯一方法是使用#pragma指令,但我发现它会使代码困惑且难以阅读。理想情况下,我正在寻找可以添加到类/方法声明前/后的非最终关键字或属性。

c++ - 功能模板的部分属性在 GCC 中被静默忽略

我试图将一组特定的函数放入一个单独的部分,但在使用GCC时遇到了麻烦。namespace/*anonymous*/{[[gnu::section(".mysection")]]voidregular_func(){}template[[gnu::section(".mysection")]]voidtemplate_func(){}}//namespace/*anonymous*/void(*ptr1)()=®ular_func;void(*ptr2)()=&template_func;有了clang,regular_func的符号和template_func被放置在.mysec

c++ - gcc std::regex 与 -fpack-struct 段错误

考虑以下简单的C++程序#include#includeintmain(intargc,char*argv[]){std::regexfoobar("[A]+");return0;}当使用-fpack-struct=1编译时出现段错误g++-5-std=gnu++14./fpack_regex.cpp-fpack-struct=1-oa.out&&a.outSegmentationfault(coredumped)同时g++-5-std=gnu++14./fpack_regex.cpp-oa.out&&a.out工作得很好。关于为什么pack-struct=1选项可能导致此失败的任何线

c++ - 试图了解 GCC 错误

我有以下代码:#include#include#include#includetemplatevoidfoo(Iteratorbegin,Iteratorend){typedeftypenamestd::iterator_traits::value_typetype;typesmallest=(*std::min_element(begin,end));std::coutl;l.push_back(1);l.push_back(2);foo(l.begin(),l.end());return0;}当我编译时如下:g++-pedantic-ansi-Wall-Werror-O2-otes

c++ - 我可以升级 Xcode 以支持更新版本的 GCC 来学习 C++0x 吗?

我想学习C++0x,它已经成熟到我满意的水平。SnowLeopard10.6上的Xcode目前是GCC4.2.1,我想尝试的新功能,如std::shared_ptr、lambdas、auto、空指针常量、unicode字符串文字和其他零碎的东西,至少需要4.3(我相信)。理想情况下,我会使用Xcode,但我什至不确定您是否可以手动升级Xcode的编译器。这可能吗?否则,安装不干扰系统其余部分的不同版本的GCC的最佳方法是什么? 最佳答案 我最终下载了最新的IntelCompilerforMac试用版,它可以满足我的需求。这是在不扰乱

c++ - 与 CAS 的原子交换(使用 gcc 同步内置函数)

compare-and-swap函数可以用来自动交换变量吗?我在x86_64RedHatLinux上通过gcc使用C/C++,特别是__sync内置函数。示例:intx=0,y=1;y=__sync_val_compare_and_swap(&x,x,y);我认为这归结为x是否可以在&x和x之间变化;例如,如果&x构成一个操作,则x可能会在参数中的&x和x之间改变。我想假设上面隐含的比较总是正确的;我的问题是我是否可以。显然有CAS的bool版本,但是我无法让旧的x写入y。一个更有用的例子可能是从链表的头部插入或移除(gcc声称支持指针类型,所以假设这就是elem和head):elem

c++ - 在不同版本的 gcc 下有不同的结果

比较两个代码如下:1#include2#include3classCA4{5public:6inti,j,k;7};89intmain()10{11intaa[4]={1,2,3,4};12CA*i=new(aa)CA();13printf("%d%d%d%d\n",aa[0],aa[1],aa[2],aa[3]);14return0;15}1#include2#include3classCA4{5public:6inti,j,k;7};89intmain()10{11intaa[4]={1,2,3,4};12CA*i=new(aa)CA;13printf("%d%d%d%d\n",a

c++ - 显式模板实例化 : MSVC vs. GCC

我正在尝试处理C++中的命名空间和模板。我可以获得以下代码以在MSVC中编译(没有警告或错误),但是我对CYGWIN/GCC的各种排列完全没有运气。任何帮助将不胜感激。在头文件中,我声明了一个模板化的子类,如下所示:#includenamespacesfms{templateclassSmfsGrid_Typed:publicSfmsGrid_Base{public:SmfsGrid_Typed();SmfsGrid_Typed(constSmfsGrid_Typed*toCopy);SmfsGrid_Typed(std::stringfilename);virtual~SmfsGri