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
它看起来不像Linux/Mac的问题。至少你需要首先重新编译main.c。查看cc的文档。 –
你有'bin','obj','inc'和'src'子目录吗?你的'main.c'是否包含'main(int argc,char * argv [])'函数?你可以添加'-I inc'来告诉编译器你的包含文件在哪里? –
在main.c中没有'主要'入口点的气味 - 我们能否看到它 – pm100