Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么c++;标准库不工作?_C++_Macos_Gcc_Terminal_Standard Library - Fatal编程技术网

C++ 为什么c++;标准库不工作?

C++ 为什么c++;标准库不工作?,c++,macos,gcc,terminal,standard-library,C++,Macos,Gcc,Terminal,Standard Library,我一直在尝试让我从学校服务器下载的程序在mac上离线运行。我尝试通过以下教程更新GCC,但由于某些原因,即使我使用了给定的命令,这些教程也无法工作 现在当我编译。。我收到一个错误,说找不到。。我不明白。我已经更新了Xcode。。学习了大量的教程。。但我还是无法让它运行 为什么说没有找到random,导致致命错误 谢谢 错误: “由于这是一个编码站点,我需要提供代码,因为我可能忘记包含头文件…” #如果包含地下城级别#_ #定义-包括地下城级别_ #包括“Tile.h” #包括 #包括 班级运动员

我一直在尝试让我从学校服务器下载的程序在mac上离线运行。我尝试通过以下教程更新GCC,但由于某些原因,即使我使用了给定的命令,这些教程也无法工作

现在当我编译。。我收到一个错误,说找不到。。我不明白。我已经更新了Xcode。。学习了大量的教程。。但我还是无法让它运行

为什么说没有找到random,导致致命错误

谢谢

错误: “由于这是一个编码站点,我需要提供代码,因为我可能忘记包含头文件…”
#如果包含地下城级别#_
#定义-包括地下城级别_
#包括“Tile.h”
#包括
#包括
班级运动员;
地下城等级{
公众:
地下城级别(国际iWidth、国际iHight、标准::mt19937和randomGen);
~地下城等级(无效);
无效转储();
字符在(整数x,整数y);
生物*移除造物(生物*造物移除);
无效移动生物(生物*creatureToMove,char dir);
无效放置名称(生物*创造者放置,标准::mt19937和随机生成);
无效放置名称(生物和创造者放置,标准::mt19937和随机生成);
瓷砖和返回瓷砖(内部x,内部y);
int getWidth();
int getHeight();
私人:
std::vector m_vvTiles;//Tile是char
};
#恩迪夫
这是我的makefile:
OBJECTS=弹药.o盔甲.o消耗品.o生物.o实体.o黄金.o物品.o解析器.o药剂.o卷轴.o武器.o XMLSerializable.o创造者工厂.o地下城等级.o玩家.o磁贴.o项目工厂.o
HEADERS=弹药.h装甲.h消耗品.h生物.h实体.h黄金.h物品.h解析器.h药剂.h卷轴.h武器.h XMLSerializable.h创造者工厂.h地下城等级.h玩家.h瓷砖.h物品工厂.h
所有人:杰哈克
%.o:%.cpp$(标题)
clang++-c$<-o$@-std=c++11-stdlib=libc++
Jhack:$(对象)main.o
clang++-o Jhack$^-stdlib=libc++
清洁:
rm-f*.o Jhack
跑步:Jhack
./Jhack

苹果的gcc真的过时了。尝试使用clang和libc++而不是gcc和libstdc++构建。编译标志:
-std=c++11-stdlib=libc++
,链接标志:
-stdlib=libc++
。使用clang++而不是g++。

编辑:请注意,您需要安装最新的命令行工具才能使其工作。
打开XCode。转到“Xcode”->“首选项…”->“下载”选项卡。选择“命令行工具”并安装它们。如果显示已安装-单击“立即检查并安装”按钮检查更新。
在终端中键入
clang++--version
之后,您应该会看到如下内容:

Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.3.0
Thread model: posix

编辑2:如果这没有帮助,并且您仍然有一个过时版本的编译器。尝试在makefile中使用
xcrun-clang++
而不是
clang++
。这将使用xcode工具链。

Lol我显然没有忘记包含。。同样的代码也可以通过SSH正常工作。。但我会发布代码,如果我们知道它报告的文件丢失了,那就太好了。总共有83个文件。它包含在其中的几个项目中。它第一次遇到它。。。致命错误我认为看到您遇到的完整的实际错误会有很大帮助。
是在C++11中引入的。要么您使用的是旧版本的GCC,要么您没有启用C++11模式。或者你的安装或文件系统已损坏。是的,这也无法正常工作。啊,这太令人沮丧了。没有办法让它使用安装在我的文件中的新版本吗?您需要更新XCode,从XCode安装命令行工具,在makefile中用clang++替换g++,在makefile中的适当位置添加我上面告诉过的编译器和链接器标志,
make clean
make
看起来您没有添加
-stdlib=libc++
来编译标志我以前从未使用过标志。抱歉,我可能会让你对我的知识缺乏感到沮丧=/在你的makefile中替换这一行:
g++-c$<-o$@-std=c++0x
:用这一行:
clang++-c$<-o$@-std=c++11-stdlib libc++
;这个:
g++-o Jhack$^
与这个:
clang++-o Jhack$^-stdlib=libc++
#ifndef _DungeonLevel_included_
#define _DungeonLevel_included_

#include "Tile.h"
#include <vector>
#include <random>

class Player;

class DungeonLevel {
public:
    DungeonLevel(int iWidth, int iHeight, std::mt19937 & randomGen);
    ~DungeonLevel(void);

    void dump();
    char at(int x, int y);

    Creature * removeCreature(Creature * creatureToRemove);

    void moveCreature(Creature * creatureToMove, char dir);
    void placeInGame(Creature * creatureToPlace, std::mt19937 & randomGen);
    void placeInGame(Creature & creatureToPlace, std::mt19937 & randomGen);
    Tile & returnTile(int x,int y);
    int getWidth();
    int getHeight();

private:
    std::vector<std::vector<Tile>> m_vvTiles; //Tile was char

};

#endif
OBJECTS = Ammunition.o Armor.o Consumable.o Creature.o Entity.o Gold.o Item.o parser.o Potion.o Scroll.o Weapon.o XMLSerializable.o CreatureFactory.o DungeonLevel.o Player.o Tile.o ItemFactory.o
HEADERS = Ammunition.h Armor.h Consumable.h Creature.h Entity.h Gold.h Item.h parser.h Potion.h Scroll.h Weapon.h XMLSerializable.h CreatureFactory.h DungeonLevel.h Player.h Tile.h ItemFactory.h

all: Jhack

%.o: %.cpp $(HEADERS)
    clang++ -c $< -o $@ -std=c++11 -stdlib=libc++

Jhack: $(OBJECTS) main.o
    clang++ -o Jhack $^ -stdlib=libc++

clean:
    rm -f *.o Jhack

run: Jhack
    ./Jhack
Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.3.0
Thread model: posix