c++ - Solaris Imakefile 复制文件规则

标签 c++ solaris porting

我正在尝试将一个应用程序从 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/

相关文章:

C++ 复制构造函数

c++ - 使用C++找出文本文件中有多少行

c - 在 solaris 内核模块中获取进程 ID 和父进程

solaris - x86 上 SPARC 的交叉编译

java - 来自 Java 和 Objective-C 的 C++

macos - 从 windows 到 mac 的 C# 单声道

assembly - 处理器之间的转换

c++ - QSqlDatabasePrivate::addDatabase: 重复的连接名称 'MyConnection' 错误

c++ - 在 Objective-C++ 中将 C++ GUID 结构转换为 NSString*

unix - 在 UNIX 中重命名文件但保留原始创建、修改时间