0

我正在使用 C 中的代码进行具有辐射传输的水力模拟。需要 PETSc,它是我在本地机器上编译的。但是在编译我的代码时,我收到错误消息:(error: ’__SDIR__’ undeclared首先在此函数中使用)。生成文件有:

include $(PETSC_DIR)/conf/variables
CFLAGS += $(PETSC_INCLUDE)
CFLAGS += $(PETSC_CC_INCLUDES)
LDFLAGS += $(PETSC_KSP_LIB)

任何人都可以提出解决方案吗?

4

1 回答 1

0

链接器参数必须在任何目标文件之后具有库引用(路径然后是库名称)。这是因为库用于解析符号,并且参数按照它们列出的顺序从左到右进行处理。因此,当一个库被提前列出时,在目标文件创建未解析符号的某个目标文件之前,该库将不会用于解析符号。建议将库路径和库名称放在链接器行的最后。

于 2015-04-01T22:31:00.107 回答