我在C中使用代码进行辐射传输的水文模拟。需要PETSc,我在本地机器上编译。但在编译我的代码时,我收到错误消息:error: ’__SDIR__’ undeclared
(首次在此函数中使用)。 makefile有:
include $(PETSC_DIR)/conf/variables
CFLAGS += $(PETSC_INCLUDE)
CFLAGS += $(PETSC_CC_INCLUDES)
LDFLAGS += $(PETSC_KSP_LIB)
任何人都可以提出解决方案吗?
答案 0 :(得分:0)
链接器参数必须在任何目标文件之后具有库引用(路径然后是库名)。这是因为库用于解析符号,并且按从左到右列出的顺序处理参数。所以当早期列出库时,在目标文件创建未解析符号的某个目标文件之前,该库将不会用于解析符号。建议将库路径和库名称放在链接器行的最后。