我一直在XCode开发一个学校项目.最终产品必须在源代码中使用makefile提交,因此我编写了一个makefile并开始编译,以确保我有一个工作副本.这是我的makefile:
all: main.o StackList.o world.o Farm.o
gcc main.o StackList.o world.o Farm.o -g -o Project1
main.o:
gcc -g -c main.cpp
StackList.o:
gcc -g -c Stacklist.cpp
world.cpp:
gcc -g -c world.cpp
Farm.cpp:
gcc -g -c Farm.cpp
clean:
rm *.o Project1
Run Code Online (Sandbox Code Playgroud)
编译每个目标文件工作正常,但当它到达"全部"链接步骤时,它似乎不知道标准库.我从"cin","basic_string"到"operator new"的每一个都得到"未定义的符号"错误.
我的印象是这些东西不需要直接表示,事实上过去并不需要这样做.
知道可能会发生什么吗?
编辑:
如果有帮助,这是(非常长的)错误消息的开头:
Undefined symbols for architecture x86_64:
"std::cin", referenced from:
_main in main.o
"std::cout", referenced from:
_main in main.o
Farm::print(int) in Farm.o
"std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char>, std::allocator<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced …Run Code Online (Sandbox Code Playgroud)