今天make一个OpenGL示例项目的代码,我想使用自己的库myLib.a
,关于生成默认提供的tempLib
的部分都删了,之后Makefile内容大概是
OPTIONS = -framework GLUT -framework OpenGL
DEFINES = -D GL_SILENCE_DEPRECATION
LIBS = -L../common -lmyLib
template: template.c initShader.o tempLib.o
gcc -o template template.c initShader.o $(LIBS) $(OPTIONS) $(DEFINES)
initShader.o: initShader.c initShader.h
gcc -c initShader.c $(DEFINES)
clean:
rm -f template initShader.o tempLib.o
结果我发现怎么目录下还生成一个tempLib.o
文件呢?找来找去发现是因为template后面还跟着一个tempLib.o,所以就生成了。
这个文件既然没有任何gcc命令来生成它,怎么就出现了呢?(其实我不知道)是不是make自己生成的?
我就进一步思考,那这个文件既然没有任何实质性内容,应该是空的吧(0byte)
后来发现怎么有336byte
?
于是打算查看一下,用了经典代码objdump -D tempLib.o
结果如下:
tempLib.o: file format mach-o arm64
我在期待什么…(你在期待什么…) 好的,那倒也合理。不过make为什么要创建这个文件?留给评论区讨论吧
关于这个makefile我还有一个搞了十几分钟的事情gcc -l你让我头好大啊! 实在不应该(((
ir, culu ; )