对于一个项目,我必须为源代码创建一个简单的makefile,其中包括pthreads和命令行参数(如果需要的话)。
无效的makefile的第一个版本是这样的:
mr: mr.o
g++ -std=c++11 -pthread mr.o -o mr
mr.o: mapred.cc
g++ -std=c++11 -pthread -c mapred.cc
clean:
rm *.o mr
因此,我决定翻转一下前两个语句:
mr.o: mapred.cc
g++ -std=c++11 -pthread -c mapred.cc
mr: mr.o
g++ -std=c++11 -pthread mr.o -o mr
clean:
rm *.o mr
它可以编译吗?我在终端中得到的就是:
g++ -std=c++11 -pthread -c mapred.cc
,仅此而已。当查看创建了哪些文件时,我看到的只是创建了一个新文件mapred.o
,但没有可执行文件。因此没有错误,但没有完全完成。如果你们有任何帮助我的提示,将不胜感激。谢谢!
答案 0 :(得分:1)
如果未使用LinearLayout
选项指定显式输出名称,则编译器将使用与源文件相同的名称命名目标文件,但后缀为ll
。
在您的情况下,命令
RecyclerView
将创建一个名为-o
的对象文件。
在目标名称和链接时使用.o
,或使用g++ -std=c++11 -pthread -c mapred.cc
选项:
mapread.o
关于第二个问题,除非调用mapread.o
时指定了明确的目标,否则它将仅使用 first 目标,而不会使用其他任何目标。