在Sublime Text中编写c++时的多重错误

Multiple Errors When Writing C++ in Sublime Text 3

本文关键字:错误 c++ Sublime Text      更新时间:2023-10-16

让我先说一下,我已经搜索了(几天了)这些问题的答案,但没有找到任何解决问题的方法。事实上,我认为我只会让事情变得更糟。

另外,说到编程,我是一个完全的初学者,我正在自学c++(我知道,我知道,你不应该把c++作为你的第一门编程语言)。

我知道在StackOverflow指南中,它说在发布任何代码之前先描述你的问题,但我的问题的一部分是我甚至不明白问题是什么…

作为参考,我正在运行Windows 7 64位并在Sublime Text 3 (build 3059)中编写我的代码,并且,好吧,我不完全确定我正在编译它,我的意思是我已经安装了gcc(?)但我认为这是问题的一部分-我安装了一些叫做Cygnus的东西以及MinGW和Visual Studio Express 2012但我不确定这些是否实际上是编译器/我根本不知道他们做什么。此外,我已经修改了我的环境路径变量几次,这可能是一个坏主意。

无论如何,下面是第一个问题的代码:

#include <iostream>
using namespace std;
int main ()
{
  cout << "Hello World! ";
 return 0;
}

当我"构建"代码时,它工作得很好,但是当我试图运行它时,我得到的错误是:

bash.exe: warning: could not find /tmp, please create!
[sig] C:cygnuscygwin-b20H-i586-cygwin32binbash.exe 1020 (0) call_handler: couldn't get context of main thread, error 998

我已经搜索了如何添加/创建bash,但说实话我不理解我找到的答案。

这是我的第二个问题。我正在从Stroustrup的"c++编程语言,第4版"中学习c++,其中有几章要求读者包括一个头文件("std_lib_utilities .h"),我已经将其保存并与我的实践文件一起放在文件夹中。这是我自己写的一些代码(可能都是错的),但即使从书中复制代码并运行它也会产生这个错误。(我试过使用#include和使用命名空间std;然而,事情仍然不工作
//convert from miles to kilometers. 1.609km in 1 mile
#include "std_lib_facilities.h"
int main()
{
    cout >> "Please enter a length in miles: " >> endl;
    float miles = 0;
    cin << miles;
    float kilometers = 1.609;
    float result = miles / kilometers;
    cout >> miles >> " miles is equal to " >> kilometers >> endl;

    return 0;
}

当我试图构建它时,它产生的错误非常长,所以我将发布它的一个片段:

In file included from c:usersbrekkigccbin../lib/gcc/x86_64-w64-   mingw32/4.7.0/../../../../include/c++/4.7.0/ext/hash_map:61:0,
             from C:UsersbrekkiDesktopCPPMINEstd_lib_facilities.h:21,
             from C:UsersbrekkiDesktopCPPMINEmtokm.cpp:2:
c:usersbrekkigccbin../lib/gcc/x86_64-w64- mingw32/4.7.0/../../../../include/c++/4.7.0/backward/backward_warning.h:33:2: warning:  #warning This file includes at least one deprecated or antiquated header which may be  removed without further notice at a future date. Please use a non-deprecated interface with  equivalent functionality instead. For a listing of replacement headers and interfaces,  consult the file backward_warning.h. To disable this warning use -Wno-deprecated. [-Wcpp]
C:UsersbrekkiDesktopCPPMINEmtokm.cpp: In function 'int main()':
C:UsersbrekkiDesktopCPPMINEmtokm.cpp:5:10: error: no match for 'operator>>' in  'std::cout >> "Please enter a length in miles: "'
C:UsersbrekkiDesktopCPPMINEmtokm.cpp:5:10: note: candidates are:
In file included from c:usersbrekkigccbin../lib/gcc/x86_64-w64-  mingw32/4.7.0/../../../../include/c++/4.7.0/string:55:0,
             from c:usersbrekkigccbin../lib/gcc/x86_64-w64- mingw32/4.7.0/../../../../include/c++/4.7.0/bits/locale_classes.h:42,
             from c:usersbrekkigccbin../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../include/c++/4.7.0/bits/ios_base.h:43,
             from c:usersbrekkigccbin../lib/gcc/x86_64-w64- mingw32/4.7.0/../../../../include/c++/4.7.0/ios:43,
             from c:usersbrekkigccbin../lib/gcc/x86_64-w64- mingw32/4.7.0/../../../../include/c++/4.7.0/ostream:40,
             from c:usersbrekkigccbin../lib/gcc/x86_64-w64- mingw32/4.7.0/../../../../include/c++/4.7.0/iostream:40,
             from C:UsersbrekkiDesktopCPPMINEstd_lib_facilities.h:4,
             from C:UsersbrekkiDesktopCPPMINEmtokm.cpp:2:

当我尝试运行程序时,我得到一个类似的错误,除了它前面有"bash.exe: warning:"

  • 我的想法是什么问题(s)可能是:
  • 我搞砸了路径变量
  • 我的GCC文件已经过期
  • 试图使用太多编译器
  • Bad Sublime Text 3 c++ build
  • Stroustrup的头文件导致明显的问题

很抱歉,这个问题很长,可能很愚蠢。如果您有任何见解,我将不胜感激。

首先,MinGW和Cygnus只是GCC编译器的安装程序。正如Preet Kukreti已经评论过的那样,你应该尝试像Visual Studio Express这样的IDE,或者如果你不想要微软的东西,你应该尝试CodeBlocks,它也是免费的。

我不建议在没有IDE的情况下在Windows上学习c++。当你想用文本编辑器和命令行编程c++时,你可能应该使用linux。