草庐IT

c++ - GCC 值得在 Windows 上使用来代替 MSVC?

我目前在Windows上使用VisualStudio2010进行C++开发。在C++11正式发布后,我开始使用它的一些在MSVC中已经可用的功能。但是,正如预期的那样,绝大多数新更改不受支持。我想也许即将发布的VisualStudio版本会添加这些新功能。然而,看完this看起来几乎没有什么变化。因此,我很好奇在Windows上使用GCC而不是MSVC的可行性,因为它似乎已经支持绝大多数C++11。据我所知,这意味着使用MinGW(我还没有看到任何其他本地Windows版本的GCC)。但我对这是否值得一试有疑问:是否可以将其用作cl.exe的直接替代品,或者是否会涉及大量hack和兼容

c++ - GCC中的函数静态变量是线程安全的吗?

在示例代码中voidfoo(){staticBarb;...}用GCC编译是否保证b将以线程安全的方式创建和初始化?在gcc的手册页中,找到-fno-threadsafe-statics命令行选项:DonotemittheextracodetousetheroutinesspecifiedintheC++ABIforthread-safeinitializationoflocalstatics.Youcanusethisoptiontoreducecodesizeslightlyincodethatdoesn'tneedtobethread-safe.这是否意味着本地静态变量在默认情况

c++ - 使用 GCC 编译 C++ 程序

如何使用GCC编译器编译C++程序?文件info.c#includeusingstd::cout;usingstd::endl;intmain(){#ifdef__cpluspluscout当我尝试编译info.c:gccinfo.CUndefinedfirstreferencedsymbolinfilecout/var/tmp/ccPxLN2a.oendl(ostream&)/var/tmp/ccPxLN2a.oostream::operatorGCC编译器不是可以编译C++程序吗?在相关说明中,gcc和g++之间有什么区别? 最佳答案

c++ - 是否有 GCC 选项警告写入 `this-field` 而不是 `this->field` ?

以下代码(包含一个恶性错误)使用GCC编译时没有任何警告。但是,当然,它不像开发者(我)所期望的那样工作。#includestructA{boolb;voidset(boolb_){this->b=b_;}boolget()const{returnthis-b;}//Thebugishere:'-'insteadof'->'};intmain(){Aa;a.set(true);std::cout我可以为编译器(GCC4.8)添加哪些警告以避免这种错字?链接问题:是否有任何选项可以强制(或警告)使用this->访问成员变量/函数? 最佳答案

gcc - 在 Cygwin64 : "ld: cannot find -lmingw32" 上编译 cgo lib

我正在尝试在Windows上使用cgo库,即github.com/mattn/go-sqlite3我使用Cygwin64并安装了所有“开发”包,所以gcc可用。但运行gogetgithub.com/mattn/go-sqlite3会导致:/usr/lib/gcc/x86_64-pc-cygwin/5.3.0/../../../../x86_64-pc-cygwin/bin/ld:cannotfind-lmingwex/usr/lib/gcc/x86_64-pc-cygwin/5.3.0/../../../../x86_64-pc-cygwin/bin/ld:cannotfind-lmi

gcc - 通过 Windows cgo->gcc->ld 进行 DLL 链接会出现 "undefined-reference-to-(function)"错误

这个问题不太可能对任何future的访客有帮助;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于互联网的全局受众。如需帮助使这个问题更广泛适用,visitthehelpcenter.8年前关闭。(非常详细的问题报告——tl;dr在底部!)与Glut相比,我真的更喜欢GLFW并希望获得它的Golangbinding在Windows64位和Go1.0.164位下工作。在Linux下,它的绑定(bind)工作完美无缺。这在Windows下原则上是可行的--GitHub用户chschasmanaged至doso,但他使用的是Win32并且他的提示还没有解决我的问题

python - 错误 : command 'gcc' failed with exit status 1 on CentOS

我正在尝试使用sudopipinstalllxml在CentOS上安装lxml包,并在最后抛出此错误:错误:error:command'gcc'failedwithexitstatus1---------------------------------------Command/usr/bin/python-c"importsetuptools;__file__='/tmp/pip-build-root/lxml/setup.py';exec(compile(open(__file__).read().replace('\r\n','\n'),__file__,'exec'))"ins

linux - 有没有办法让 gcc 输出原始二进制文件?

是否有一组命令行选项可以说服gcc从自包含源文件生成平面二进制文件?例如,假设foo.c的内容是staticintf(intx){inty=x*x;returny+2;}没有外部引用,没有任何东西可以导出到链接器。我想得到一个只有这个功能的机器指令的小文件,没有任何其他装饰。除了32位保护模式外,有点像(DOS).COM文件。 最佳答案 试试这个:$gcc-ctest.c$objcopy-Obinary-j.texttest.obinfile您可以使用objdump确保它是正确的:$objdump-dtest.otest.o:fil

c - gcc 调试符号(-g 标志)与链接器的 -rdynamic 选项

glibc提供backtrace()和backtrace_symbols()获取正在运行的程序的堆栈跟踪。但要使其工作,程序必须使用链接器的-rdynamic构建。旗帜。-g有什么区别标志传递给gccvs链接器的-rdynamic旗帜?对于示例代码,我做了readelf来比较输出。-rdynamic似乎在Symboltable'.dynsym'下产生更多信息但我不太确定附加信息是什么。即使我strip使用-rdynamic构建的程序二进制文件,backtrace_symbols()继续工作。当strip从二进制文件中删除所有符号为什么它会留下-rdynamic添加的任何内容旗帜?编辑:

Linux - Yum 安装 GCC - 缺少内核头文件

当我尝试在我的linux(centos)上安装GCC时,它会丢失glibc-headers-2.5-58.el5_6.4.x86_64fromupdateshasdepsolvingproblems-->MissingDependency:kernel-headersisneededbypackageglibc-headers-2.5-58.el5_6.4.x86_64(updates)glibc-headers-2.5-58.el5_6.4.x86_64fromupdateshasdepsolvingproblems-->MissingDependency:kernel-header