jjzjj

c++ - 代码在带有警告的 g​​++ 上编译,但在 clang3.1(Xcode 4.3.3) 上给出相同代码的错误

下一行在g++上编译成功,但在clang::上出错static_assert(tBitsg++警告::therearenoargumentsto'static_assert'thatdependonatemplateparameter,soadeclarationof'static_assert'mustbeavailableclang错误::useofundeclaredidentifier'static_assert';didyoumean'static_cast'?请帮帮我。来自评论的函数声明:templateHRESULTDoIO(std::bitset&bitsetToSer

c++ - 如何使用 g++ 编译和链接库 (SDL) 以便我拥有独立程序?

我在Windows7上使用MinGW。简而言之,我想创建一个HelloWorldSDL程序(启动一个窗口或一些简单的东西),然后编译它以便我有一个独立的程序,我可以分发而不需要用户安装任何额外的东西(比如将SDL.dll放入Windows文件夹中)。我已经下载了SDL开发库,目前位于c:\SDL。在我的项目文件夹中,我有test.cpp和SDL.dll我不太确定下一步该做什么;一开始我以为我可以包含SDL,然后只需在命令行中链接到DLL,瞧,但也许我似乎需要先用我的程序编译SDL开发库?我唯一的目标是将我的SDL程序打包到一个文件夹中,我可以将该文件夹分发到其他Windows平台,而无

c++ - g++ 不输出任何错误

每当我尝试在终端上用g++编译c++代码时,我似乎无法让g++输出任何错误消息,即使我确定在编译时应该捕获一些错误(例如语法,引用类型...)。我尝试了几种方法,比如这个make文件:all:g++-W-Wall-Werrormain.cpp它所做的就是输出:make:***[all]Error1这不是很有用,显然...输入如下内容:g++-W-Wall-Werrormain.cpp直接到终端(没有make文件)根本不输出任何消息。然而,这在编译时成功输出了所有错误:ccmain.cpp我的问题是:如何让g++输出错误消息,以便我知道在哪里更正我的代码? 最

c++ - 更改文件内容 - 这是 g++ 4.7.2 中的错误还是我做错了?

在编写一些代码来更新二进制文件中的位置时,我注意到了一些奇怪的事情。考虑这个示例代码:#include#include#includeusingnamespacestd;intmain(){chartmp;strings;fstreamfs;fs.open("test.txt",fstream::out);fs>s;cout>s;cout在最近的g++版本中(至少在6.2.1中),我可以毫无问题地读取然后写入一些字节-在示例中你得到正确的输出:blubblah然后我用g++4.7.2编译代码,突然更新没有效果,即第二个输出仍然是“blub”,除非我添加fs.tellg()或fs.tel

c++ - gcc 和 g++ 错误 : error trying to exec 'cc1plus' : execvp: No such file or directory

我在编译时遇到问题.c和.cpp使用gcc的文件和g++,对于这两种情况,我都收到了消息:g++(orgcc):errortryingtoexec'cc1plus':execvp:Nosuchfileordirectory`我已经尝试重新安装gcc和g++并确保它们的版本相同。编辑:我使用的是ubuntu16.04.1LTS,g++和gcc的版本都是5.4.020160609。以下是echo|g++-v-xc++-fsyntax-only-的输出:Usingbuilt-inspecs.COLLECT_GCC=g++Target:x86_64-linux-gnuConfiguredwit

c++ - 继承的构造函数,在 clang++3.9 中编译,在 g++7 中失败

这段代码structBase{};structDerived:Base{usingBase::Base;};intmain(){Baseb;Derivedd{b};}compilesfineonclang++3.9,然而它failsonallgcc's(包括7)和小于3.9版本的clangs错误信息error:nomatchingfunctionforcallto'Derived::Derived()Derivedd{b}'.上面的代码是否合规?PS:如果我注释掉usingBase::Base行,代码将不再在clang-3.9上编译。 最佳答案

c++ - 模板化友元声明在 g++ 5.4.0 下不起作用——编译器错误或错误代码?

下面是一些C++代码,在我的Mac(Xcode10.210E125/AppleLLVM版本10.0.1(clang-1001.0.46.4))上编译没有错误,但给出了编译器错误消息(显示下面)在我的Linux机器上(g++(Ubuntu5.4.0-6ubuntu1~16.04.11)5.4.020160609)。我的问题是,这是g++5.4.0中的编译器错误,还是我在代码中做错了什么?g++5.4.0的编译器错误是:$g++template_friend.cpptemplate_friend.cpp:Ininstantiationof‘classSubClass’:template_f

c++ - g++ 9.1 更新后 std::stable_sort 的问题

从gcc/g++8.1更新到9.1并重新编译我的代码后,它的大部分测试都失败了。因此,进行了一些挖掘,我发现std::stable_sort是问题所在。事实证明,我调用的大部分电话都是std::stable_sort没有必要,也就是说,调用std::sort就足够了。因此,我在可能的地方进行了替换,并且针对这些代码段的测试再次成功。现在,我只有一次调用std::stable_sortvoidMshReader::determinePhysicalEntitiesRange(){//connsisnotemptystd::stable_sort(this->conns.begin(),t

c++ - 如何解释 g++ 生成的 .i 文件

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:gccpreprocessoroutput出于某种原因,我需要调查一些由g++预处理器生成的.i文件,我在其中看到如下代码:#1/usr/local/include/boost/python.hpp13#11/usr/local/include/boost/python.hpp3我是一名经验丰富的C++程序员,我知道.i文件是什么,问题是,我找不到关于如何解释.i文件中的行的详细解释。谁能解释一下上面几行的意思(尤其是文件后面的数字是什么意思),或者告诉我一个可以找到相关文档的地方?谢谢,看了链接后,我的问题

使用 g++ 4.6 和 boost::unordered_map 的 C++11 相关编译错误

我有一段C++代码会因编译错误而失败,除非它在​​C++11模式下运行,但我无法弄清楚为什么会这样,因为代码没有(明确地)使用C++11特点:#include#include#includestructSomeStruct{boost::unordered_mapintMap;};intmain(intargc,constchar*argv[]){std::vectorvals;vals.resize(100);}在使用gcc4.6.3-1ubuntu5和boost1.48的Ubuntu12.0464位机器上编译时:g++test.cpp然后我得到这个编译错误:Infileinclud