MacOSx - 使用make命令编译C项目

时间:2016-01-06 17:02:50

标签: c++ c linux macos makefile

我正在为我的系统编程课程工作,这是一门使用linux终端和C语言的课程。我拥有一台Mac并且已经为我的其他课程需要一个Windows VM,所以我没有linux机器的空间,我的教授说我的mac机器可以正常工作,因为它有linux终端。

我们必须创建一个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

1 个答案:

答案 0 :(得分:1)

傻傻的我。我的C文件中没有有效的main函数。在未来的孩子们中注意这个!