Compile in c++14
Compile in c++14
因此,在我的CSE课程中,我们得到了一个头文件,用于我们正在编写的程序。
不幸的是,我无法让终端使用该头进行编译,这会导致相当多的错误(仅使用"g++"进行编译)。此外,当我在大学里使用PuTTY时,我在使用这个标题时也会遇到同样的错误。然而,当我使用"g++-std=c++14"进行编译时,我不会得到错误。
我曾尝试在mac上的终端上使用此命令进行编译,但它表示无法识别c++14部分。
dhcp-10-202-147-243:hw1pr1 Admin$ g++ -std=c++14 hw1pr1.cpp
error: invalid value 'c++14' in '-std=c++14'
如果能为我提供任何帮助,我将不胜感激。希望这一切都有某种意义。
这是我在终端中用g++编译头文件时遇到的错误。
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_map:212:5: warning:
Use of the header <ext/hash_map> is deprecated. Migrate to <unordered_map>
[-W#warnings]
# warning Use of the header <ext/hash_map> is deprecated. Migrate to ...
^
In file included from read_first_name.cpp:1:
./std_lib_facilities_4.h:43:20: error: no matching function for call to object
of type 'hash<char *>'
return hash<char*>()(s.c_str());
^~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/__hash:39:12: note:
candidate function not viable: 1st argument ('const value_type *'
(aka 'const char *')) would lose const qualifier
size_t operator()(char *__c) const _NOEXCEPT
^
In file included from read_first_name.cpp:1:
./std_lib_facilities_4.h:112:8: warning: comparison of unsigned expression < 0
is always false [-Wtautological-compare]
if (i<0||size()<=i) throw Range_error(i);
~^~
./std_lib_facilities_4.h:118:8: warning: comparison of unsigned expression < 0
is always false [-Wtautological-compare]
if (i<0||size()<=i) throw Range_error(i);
~^~
3 warnings and 1 error generated.
这个错误不会发生,当我使用PuTTY和"g++std=c++14"时,程序将完全编译
C++标准之间有很多变化,因此在一个版本中有效的内容不必在另一个版本。
g++默认为C++的-std=gnu++98
,这是几十年前的C++98标准,通过GNU扩展进行了增强(其中大多数都是一致的)。
选择合适的修订版:-std=c++1y -pedantic
非常接近C++14。
C++14中引入的哪些更改可能会破坏用C++11编写的程序?
看看你说你必须使用什么以及.cpp文件的名称格式,我想我是同类的。一年后,看起来像,但为了存档,这里是我的解决方案:
std_lib_facilities.h标头随Bjarne Stroustrup教科书"编程:使用C++的原理和实践"一起提供。对于那些不知道的人来说,Bjarne Stroustrup发明了C++(他很清楚自己在说什么)。顺便说一句,如果你花时间真正阅读这本书的话,这本书是学习C++的一种极好的方式。std_lib_facilities.h头文件只是C++初学者的一个方便的头文件,它包含到教科书中使用的所有主要标准库的链接,以及一些帮助解释潜在错误或错误的辅助函数,或者只是为了学习方便(比如为学生处理简单异常抛出的error()函数,或者添加向量的"越界"检查)。这最终只是一种让学生直接进入代码的方式,而不必学习有关标头的细节。Stroustrup使用C++不断更新,因此包含了几个需要C++11标准的库。CSCE系希望其学生(至少在这门早期课程中)连接到该系的Unix系统并从那里进行编译,以避免与下载和更新编译器混淆。
我碰巧之前已经有了几个C++类,因此已经在我的Ubuntu笔记本电脑上设置了g++。我尽可能长时间地避免包含std_lib_facilities,因为我遇到了与Topic Creator Joe相同的错误,g++无法识别"c++11"部分(手动包含所需的库可以很好地工作,直到我们不得不使用教科书中使用头的帮助函数之一的类)。最终,我在网上找到了一个帮助主题,建议我简单地将g++编译器更新到4.7或更高版本,因为4.6或更低版本不支持C++11(当然也不支持C++14)。奇怪的是,与Mac或Windows上可能使用的更新相比,它相当复杂,我怀疑确切的过程是否适用,但这很可能是问题所在:它只是g++的旧版本,需要更新才能编译C++11及更高版本。我建议搜索更新Mac版g++/gcc的方法。
你知道,如果其他有这个问题的人偶然发现了这个问题,他们的问题还没有解决。
- netcat command in c++
- Difference in displaying cv2 Mat
- 枚举环境变量的惯用C++14/C++17方法
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- 错误的自动扣除 c++14
- cuda 10.2 in Qt 5.14 ubuntu 18.04
- log in cpp 14 and 17
- §12.3.2 [class.conv.fct]/1 in C++1z 相对于 C++14 发生了重大变化。有意义吗?
- Compile in c++14
- Lambda-Over-Lambda in C++14
- SunCC 5.12 至 5.14 和 "Types cannot be declared in anonymous union"