我有一些HDF5 C代码,我试图移植到c++ Builder。我在构建时得到这个错误:
[ilink64 Error]错误:从D:DELPHITOOLSPASHDFCWIN64DEBUGFILE2引用的未解决的外部'H5check_version'。O
H5check_version
作为宏包含在H5public.h
中。
为什么c++ Builder找不到这个?
H5check_version
作为宏包含在H5public.h
中。
如果为真,就不会得到链接器错误,因为宏只在预处理器阶段处理。
在项目的某个地方,编译器看到H5check_version
作为函数的声明,并且您的file2
单元将其作为函数调用,但链接器找不到该函数的实现,因此出现错误。
您的项目需要包含对适当的.lib
文件的引用,该文件要么实现实际的函数(静态链接),要么告诉链接器该函数是从哪个DLL导出的(动态链接)。
C/c++是区分大小写的,所以H5check_version和H5check_version是不一样的。
AFAIK pascal不区分大小写。
对