草庐IT

gcc-plugin

全部标签

c++ - 部署使用 GCC 4.6 编译的 OSX 应用程序

我正在尝试在MacOS-X上移植我的一个项目。当我使用C++0X开发我的项目时,我需要一个比Xcode提供的版本更新的GCC版本(甚至是Xcode4),所以我在我的SnowLeopardsMac上编译了GCC4.6。我的项目确实可以正常编译,它也可以在我编译它的计算机(OS-X10.6.7)上启动,但是当我将它传输到我的MacBook(OS-X10.5.8)时它不起作用。它返回以下错误:dyld:lazysymbolbindingfailed:Symbolnotfound:__ZNSo9_M_insertImEERSoT_Referencedfrom:/Users/zu/Desktop

c++ - Intel (windows) c++ 编译器并将其库实现更改为 gcc。可能吗?

不确定这是不是该问的地方,但这里是来自page在英特尔网站上,它指出:TheIntelC++CompilerforWindowsusestheMicrosoftVisualC++headerfiles,librariesandlinker.Microsoftcontrolstheheaderfilesthatdefinethenamespace.ContactMicrosoft'stechnicalsupportinreferencetoMicrosoft'sconformancetotheC++standardonthisissue...link是否有英特尔(或其他)指南将库从vis

c++ - 如何忽略 [默认启用] 的特定 gcc 警告?

我有以下程序将绿色文本打印到终端:#include#include//returnsacoloredstringforterminaloutputstreamsstd::stringcolorize_forground(std::stringconst&message,intconst&background){returnstd::string("\e[38;5;"+std::to_string(background)+"m"+message+"\x1b[0m");}intmain(){std::cout但是,当我用下面的警告标志编译程序时,g++-std=c++1y-pedantic

c++ - gcc 4.8 或更早版本是否存在关于正则表达式的问题?

我正在尝试在一段C++11代码中使用std::regex,但该支持似乎有点问题。一个例子:#include#includeintmain(intargc,constchar*argv[]){std::regexr("st|mt|tr");std::cerr输出:st|mt|trmatchesst?1st|mt|trmatchesmt?1st|mt|trmatchestr?0当使用gcc(MacPortsgcc474.7.1_2)4.7.1编译时,要么使用g++*.cc-otest-std=c++11g++*.cc-otest-std=c++0x或g++*.cc-otest-std=gn

c++ - 如何将 GCC 的 printf 格式属性与 C++11 可变参数模板一起使用?

我有一个C++类,它是日志系统的前端。它的日志记录功能是使用C++11的可变参数模板实现的:templatevoidFrontend::log(constchar*fmt,Args&&...args){backend->true_log(fmt,std::forward(args)...);}每个日志记录后端都实现了自己的true_log版本,除其他外,它使用转发的参数调用vsnprintf。例如:voidBackend::true_log(constchar*fmt,...){//otherstuff..va_listap;va_start(ap,fmt);vsnprintf(buf

c++ - 使用 gcc 编译错误 - strprintf ("%"PRId64, n)

我正在尝试使用GCC++在我的(最新的)Centos6.5上从Github编译一些代码。但是当我尝试编译代码时收到以下错误消息。下面一行是失败的:...#define__STDC_FORMAT_MACROS1...#include...inlinestd::stringi64tostr(int64_tn){returnstrprintf("%"PRId64,n);//错误是:error:expected')'before'PRId64可能是什么问题,我该如何解决?编辑1:这是失败的代码行。https://github.com/rat4/blackcoin/blob/master/src

c++ - visual c++ 2013 是否有使用旧方言的选项(如 gcc 的 -std=c++98)?

我有一些代码可以在VisualC++2013中编译,但我被告知它不能在VC++2010中构建(因为它使用了微妙的c++11ism)。当然,我要做的是用两个编译器进行测试,但是......没有办法在VisualC++2013中关闭c++11并让它只接受c++08,正如我认为gcc的-std=c++98选项那样? 最佳答案 对于这种情况,唯一的方法是在项目->属性->常规中将PlatformToolset更改为VisualStudio2010(v100)。一旦你改变它,你将在VS2013下运行VC++2010编译器。

c++ - 使用 GCC 洗牌巨大位 vector 的最有效方法是什么

我有两个非常大的位vector(每个大约1GB),我想打乱它们按照以下方式:第一个位vector:a[0],a[1],a[n]第二位vector:b[0],b[1],b[n]结果应该是这样的:c[0]=a[0]c[1]=b[0]c[2]=a[1]c[3]=b[1]在C++中使用新英特尔处理器的vector运算最有效的方法是什么?我想使用GCC来做到这一点。 最佳答案 你可以尝试滚动你自己的循环--intch1,ch2;while((ch1=fgetc(fp1))!=EOF&&(ch2=fgetc(fp2))!=EOF){inti,d

c++ - gcc5.2 abi 更改 -> 兼容性有保证吗?

我有以下情况(Ubuntu15.10和Debian测试)我有一个没有使用cxx11编译的库A和一个使用-std=c++11的库B。B包含并链接到A,A使用boost。如果我将B链接到A,A创建的应用程序会在动态加载期间崩溃。如果我编译不带cxx11的A或带cxx11的B,一切正常。我的问题:据我所知,ABI命名空间附加组件应该可以保证这类问题。我错了吗?我创建了一个示例项目来阐明问题:https://github.com/goldhoorn/sandbox/tree/gcc5.2-issue测试1失败,其他测试通过。GDB告诉我:ProgramreceivedsignalSIGSEGV

c++11 正则表达式和 GCC

根据https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011C++11标准的正则表达式引擎应该在GCC中完成。现在,有人可以向我解释为什么这个简单的例子#include#include#includeusingnamespacestd;intmain(){stringstring_array[]={"http://www.cplusplus.com/reference/regex/regex_match/","tcp://192.168.2.1:1234/hello/how/are/you",