USE
自从 3.7
USE "Component or Library" [ , "Component or Library" ... ]
仅适用于使用gbs3的Gambas脚本。
声明一个类或脚本将使用一个或多个组件或库。
此声明必须写入类或脚本标头中。
组件和库由字符串指定。它们将在第一次使用类或模块时加载。
组件和库可以混合在同一个
USE 语句中。
Example
use "gb.args","vendor.mylib:0.0.1","gb.eval" ....
如何引用组件
组件由下所列的完整名称引用
Components
组件在Gambas默认的组件位置中查找。
您可以通过输入以下内容在系统中找到此位置:
gbs3 -e "print component.path"
大多数情况下输出如下
/usr/lib/gambas3/<component_name>
自从 3.18
可用于发现在你的系统里哪个库或组件是可用的
使用
gbs3 --list 命令
gbs3 --list library <- generates a list of all available libraries and their paths
gbs3 --list component <- generates a list of all components installed on your system
示例
use "gb.args","gb.eval"...
如何引用和定位库
库可以位于Gambas3特定的多个位置,或者通过任何明确定义的路径.
以下是按搜索顺序列出的列表:
$XDG_DATA_HOME/gambas3/lib" if XDG_DATA_HOME is defined
/usr/lib/gambas3/<vendor>/<name>:<Version>.gambas
~/.local/share/gambas3/lib/<vendor>/<name>:<Version>.gambas
/usr/lib[/multiarch]/gambas3/<vendor>/<name>:<version>.gambas
对于在每个路径中找到的:
$LD_LIBRARY_PATH/gambas3/<vendor>/<name>:<Version>.gambas
对于在每个位置中的:
$XDG_DATA_DIRS/gambas3/lib/<vendor>/<name>:<Version>.gambas
And for all executable directories listed in:
$PATH/<vendor>/<name>.gambas
or explicitly in the absolute path format:
/<user_defined_path>/<name>:<version>.gambas
Or
/<user_defined_path>/<vendor>.<name>:<version>.gambas
How version numbers are used
Version numbers may be defined and are used as part of the search criteria
may be specified in one of the following ways.
MyBiz is the vendor name for these examples.
MyBiz.mylib: - This will use the highest located version of the library
MyBiz.mylib:1 - This will use the highest located version of version 1 library found
MyBiz.mylib:1.1 - This will use the highest located version of version 1.1 library found
MyBiz.mylib:1.1.3- This will use only the explicitly request library or create and error
Note: Vendor name is not required when specifying absolute paths.
Example
use "myBiz.MyLib:","/home/mylibs/libTest:1","MyLib:","MyBiz.MyLib:1.0","MyBiz.MyLib:1.0.1" ...
Finding Your Library Search Paths
The Following gambas script will display your library search paths
dim gbsver as string = "gambas"&system.version
dim adatapaths as string[]
dim i as integer
Print user.home &/ ".local/share" &/ gbsver &/ "lib"
print "/usr/lib" &/ gbsver
If Env["XDG_DATA_HOME"] <> "" Then
print Env["XDG_DATA_HOME"] &/ gbsver &/ "lib"
Endif
If Exist("usr/lib/" &/ System.Architecture) Then
print "usr/lib/" &/ System.Architecture &/ gbsver
Endif
If Env["LD_LIBRARY_PATH"] <> "" Then
aDataPaths = Split(Env["LD_LIBRARY_PATH"], ":", "", True)
For i= 0 To aDataPaths.Max
print aDataPaths[i] & "/" & gbsver
Next
Endif
If Env["XDG_DATA_DIRS"] <> "" Then
aDataPaths = Split(Env["XDG_DATA_DIRS"], ":", "", True)
For i = 0 To aDataPaths.Max
print aDataPaths[i] & "/" & gbsver &/ "lib"
Next
Endif
If Env["PATH"] <> "" Then
aDataPaths = Split(Env["PATH"], ":", "", True)
For i = 0 To aDataPaths.Max
print aDataPaths[i]
Next
Endif
See also