FreePascal如何使用外部库函数
作者:互联网
- 主程序
test.pas
Program Test;
Uses
Foo;
Begin
WriteLn(MyFooFunc());
End.
- 库函数声明
foo.pas
Unit Foo;
Interface
Const
{$IFDEF UNIX}
// LINUX: /path/to/lib/libfoo.so
// DARWIN: /path/to/lib/libfoo.dylib
MyLib = '/path/to/lib/foo';
{$ENDIF}
{$IFDEF WINDOWS}
MyLib = 'C:\path\to\lib\foo.dll';
{$ENDIF}
Function MyFooFunc(): Integer; CDecl; External MyLib Name 'my_foo_func';
Implementation
Begin
End;
- 编译命令与参数:
fpc test.pas -k-L/path/to/lib -k-lfoo
若使用Lazarus设置时,在Project/Project Options的Complier Options/Compliation and Linking的Linking/Pass options to linker with "-k", delimiter is space中,特别注意参数之间不要有多余空格(有且仅有一个空格),防止Lazarus解析参数错误,导致莫名奇妙的连接器参数问题。例如:-L/path/to/lib -lfoo
,而非-L/path/to/lib -lfoo
!
标签:pas,MyLib,lib,外部,lfoo,path,foo,FreePascal,库函数 来源: https://www.cnblogs.com/ExSystem/p/15148073.html