当前位置: 首页 > 面试题库 >

具有多个目标的Makefile

刘选
2023-03-14
问题内容

希望这是一个非常简单的问题。我有一个makefile模式规则,如下所示:

%.so : %.f %.pyf
    f2py -c -L${LAPACK_DIR} ${GRASPLIBS} -m $* $^ ${SOURCES} --opt='-02' --f77flags='-fcray-pointer' >> silent.txt

我希望makefile生成许多.so文件,因此我尝试通过执行以下操作来使其生成两个文件(radgrd_py.so和lodiso_py.so):

radgrd_py.so lodiso_py.so:

%.so : %.f %.pyf
f2py -c -L${LAPACK_DIR} ${GRASPLIBS} -m $* $^ ${SOURCES} --opt='-02' --f77flags='-fcray-pointer' >> silent.txt

然后尝试这个:

radgrd_py.so:

lodiso_py.so:

%.so : %.f %.pyf
f2py -c -L${LAPACK_DIR} ${GRASPLIBS} -m $* $^ ${SOURCES} --opt='-02' --f77flags='-fcray-pointer' >> silent.txt

但是在每种情况下,它只会构建我指定的第一个目标。如果我运行’make
radgrd_py.so’可以正常工作,我只是不确定如何指定需要构建的文件列表,这样我就可以运行’make’。


问题答案:

通常的技巧是添加一个“虚拟”目标作为第一个目标,该目标取决于您在运行纯文本时要构建的所有目标make

all: radgrd_py.so lodiso_py.so

习惯上将此目标称为“全部”或“默认”。为了获得更多的正确性,make请将以下代码行添加到您的文件中,以使其不是真实文件Makefile

.PHONY: all


 类似资料:
  • 问题内容: 我已经通过import语句从Objective C(针对目标“ MyApp”)成功调用了我的Swift类: 我现在创建了一个名为“ MyAppLite”的新目标 编译新目标时,出现错误,因为代码需要“ MyApp-Swift.h”,但是编译器正在创建“ MyAppLite-Swift.h” 因此,我需要为要编译的目标创建条件Swift / ObjC标头。 怎么做,还是有更好的办法? 问

  • 我有一个自动化的python脚本来检查DOM中的任何更改。我有一个有效的xpath: 但是它给了我比我需要的更多的输出,其中一些会导致错误。所以我想从xpath中获取我需要的抽象项目,所以我尝试使用这样的东西: 但它不起作用,所以甚至可以用这么多标记搜索xpath吗?

  • 从这个问答中,我尝试了不同的解决方案,但没有一个奏效。 这里是顶层建筑。Gradle: 我试图在子项目中提高源代码的兼容性,但似乎没有效果。 子项目包含使用来自Java8的API的每个类,使用Java6的子项目预计会失败,但构建成功运行。 下面是父build.gradle文件: 父设置的内容。Gradle: 它是gradle.properties: 我正在打印和,它们对每个项目都有很好的值。 我正

  • 我在空闲时间实现了一个android应用程序(在Kotlin中,但这与问题无关),我尝试使用android jetpack和新的库。我有一个带有导航抽屉的活动。我试着遵循sunflower应用程序示例。它在主活动中使用以下组合来启用导航抽屉后面的逻辑: 注意:当在抽屉菜单中单击时,它会自动导航到正确的片段,并关闭抽屉,保持它们被选中等。所有的样板代码。这很整洁,也很有效。据我所知,抽屉菜单项的ID