是否有某种方法可以在为 QMAKE_EXTRA_COMPILER 选项执行 make 时任意分配订单?似乎声明顺序似乎会影响它,但它似乎不起作用......
我有一堆 fortran 代码需要编译然后归档到一个静态库中(使用ar
命令),以供我正在构建的 DLL 使用。我一直在我的 .pro 文件中对此进行精简,以使所有事情一次完成,但遇到了一些麻烦。
这是重要的东西:
win32 {
gfortran.commands = gfortran $${FORTRAN_FLAGS} ${QMAKE_FILE_NAME} -c -o ${QMAKE_FILE_OUT}
gfortran.input = FORTRAN_SOURCE
gfortran.output = ../../src/SupMods/FireNetworkDLL/${QMAKE_FILE_BASE}.o
gfortran.CONFIG = target_predeps
QMAKE_EXTRA_COMPILERS += gfortran
}
win32 {
archive.commands = ar -qsc ${QMAKE_FILE_OUT} $${FORTRAN_OBJ}
archive.input = FORTRAN_OBJ
archive.output = ../../src/SupMods/FireNetworkDLL/libORAN.a
archive.CONFIG = combine target_predeps
QMAKE_EXTRA_COMPILERS += archive
}
这仅在某些时候有效……不知道为什么。也 FORTRAN_SOURCE
只是所有 fortran 文件的列表(例如:fire.f95),并且$${FORTRAN_OBJ}
是所有 fortran .o 文件的列表。
那么有什么方法可以让我总是先从 gfortran 生成目标文件,然后通过ar
命令执行它?(我猜它与dependency_type
或depends
...有关)
此外,如果有人有更好的方法,我会全神贯注,第一次真正搞砸 qmake。
**这可能与变量 FORTRAN_OBJ 引用 .o 文件有关,而这些文件在构建开始之前实际上并不存在?