我正在尝试将一个应用程序从 Windows 移植到 Solaris,但我发现 Imakefile 没有很好地定义,或者至少没有按预期工作。
我定义了一些规则来将一些 protobuf 文件复制为:
file1.pb.cc:
cp -p $(PROTODIR)/file1.pb.cc .
file2.pb.cc:
cp -p $(PROTODIR)/file2.pb.cc .
file3.pb.cc:
cp -p $(PROTODIR)/file3.pb.cc .
在 Windows 上,所有文件都被复制。
在 solaris 上,只有第一个被复制,然后没有任何反应。
如果我重新运行 make,我会收到消息“file1.pb.cc”是最新的(没关系,因为它在那里)并且执行完成。
那么,为什么没有复制其他文件?
谢谢, 博格丹
最佳答案
您需要在文件顶部添加一条规则:
default: file1.pb.cc file2.pb.cc file3.pb.cc
规则的名字并不重要,重要的是它在前面。原因是因为 make
在没有给定参数的情况下默认只执行文件中的第一条规则。
此默认
规则取决于您要复制的文件,make
将为它们检查规则。
关于c++ - Solaris Imakefile 复制文件规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8094899/