2016-01-06 149 views
0

我正在为我的系统编程课程进行作业,这是一门使用Linux终端和C语言的课程。我拥有一台mac,并且已经需要一台windows虚拟机用于其他课程,所以我没有Linux机器的空间,我的教授说我的mac机器可以正常工作,因为它有linux终端。MacOSx - 使用make命令编译C项目

我们必须创建一个makefile文件来编译和链接c项目,并创建一个.bin文件,这是在Linux环境下编程C的基础,但是我的makefile出现错误。

我相信它与Linux和MacOS的区别,但我不确定。

我的makefile文件如下:

./bin/cryptoMagic: ./obj/main.o 
cc ./obj/main.o -o ./bin/cryptoMagic 

./obj/main.o: ./src/main.c ./inc/prototypes.h 
cc ./src/main.c -c -o ./obj/main.o 

当我运行在终端我收到此错误信息make程序:

kyles-MacBook-Pro:~ KyleJensen$ cd Documents/School/First\  Year/Semester2/SystemProgramming/Assignments/Assign01/ 
kyles-MacBook-Pro:Assign01 KyleJensen$ make 
cc ./obj/main.o -o ./bin/cryptoMagic 
Undefined symbols for architecture x86_64: 
"_main", referenced from: 
implicit entry/start for main executable 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [bin/cryptoMagic] Error 1 
+0

它看起来不像Linux/Mac的问题。至少你需要首先重新编译main.c。查看cc的文档。 –

+1

你有'bin','obj','inc'和'src'子目录吗?你的'main.c'是否包含'main(int argc,char * argv [])'函数?你可以添加'-I inc'来告诉编译器你的包含文件在哪里? –

+0

在main.c中没有'主要'入口点的气味 - 我们能否看到它 – pm100

回答

1

愚蠢的我。我的C文件中没有有效的主函数。注意这个未来的孩子!