当其他编译器没有

时间:2016-10-27 23:34:48

标签: c++ gcc mingw

在你问之前,是的我确实看了这个日子。我完全陷入困境......我使用MINGW32(我的快捷方式是MSYS)来编译我的c和cpp代码。大约2或3天,我一直遇到奇怪的错误。 (下面)以前工作很精细。我甚至运行了之前编译的相同代码,它也给出了同样的错误。然后我进入DevC ++然后打开然后编译它就可以了。

错误:

  

命名空间:未找到命令

     

使用:未找到命令

     

语法错误:       int main(){

     

(有时它给我一个难以理解的混乱)

我真的卡住了...我不想转到DevC ++ ...我喜欢使用自己的文本编辑器并在命令行中编译。

1 个答案:

答案 0 :(得分:-1)

从您的错误var backgroundLayer: SKTileMapNode! override func didMove(to view: SKView) { guard let backgroundLayer = childNode(withName: "background") as? SKTileMapNode else { fatalError("Background node not loaded") } self.backgroundLayer = backgroundLayer for row in 0..<self.backgroundLayer.numberOfRows { for column in 0..<self.backgroundLayer.numberOfColumns { let backgroundTile = self.backgroundLayer.tileDefinition(atColumn: column, row: row) let isPoison = backgroundTile?.userData?.value(forKey: "isPoisonKey") if let countNode = isPoison as? Bool { // Code here if countNode { print(countNode) } } } } } namespace: command not found对我说,您没有使用适当的编译器编译代码。

在MinGW32工具链中供参考:

using: command not found

您可能会发现查看IDE对编译器的实际操作非常有用。 我当前的IDE允许我查看它运行的所有命令来构建我的项目:

gcc.exe = C

g++.exe = C++

让我们来看看它的作用。

我当前的工具链是MinGW32,它位于C:/mingw32/bin/g++.exe -c "C:/MyProgram/main.cpp" -g -O0 -std=c++14 -Wall -o ./Obj/main.cpp.o -I. -IDependencies/Something/include

g ++是我们的c ++编译器,因此我们调用g ++。exe并传递以下开关:

C:/mingw32/bin/g++.exe

这告诉我的编译器从我的项目目录中编译main.cpp。然后我的IDE添加了一些额外的命令行开关。出于答案的目的,我只考虑-c "C:/MyProgramm/main.cpp" 。这告诉我们代码main.cpp中的输出文件到输出文件中。

我们生成这样一个文件的原因是为了节省我们编译时间,这样我们就不需要编译同一个文件两次而不需要对其进行更改。我们在每个文件上执行此步骤,创建-o个文件的集合。

然后将新文件保存在.o

这意味着您的命令行功能将如下所示:

"C:/MyProgramm/Obj/main.cpp.o"

我建议您阅读g ++函数的文档,并从不同的IDE中学习,因为您很快就会发现需要使用编译器进行更高级的操作。

例如,为了启用c ++ 14中的功能,我添加了C:/mingw32/bin/g++.exe -c "<my project directory>/<file>.cpp" -o ./Obj/<file>.cpp.o

*编辑以反映反馈。