awtk/docs/how_to_use_3rd_libs.md

79 lines
1.6 KiB
Markdown
Raw Normal View History

2020-11-24 09:28:40 +08:00
# 如何引用第三方库
使用第三方库时,在应用程序的 SConstruct 中描述依赖关系即可。具体方式为:先定义依赖描述,再调用 set_deps 将依赖描述设置到 helper 里。
示例:
```python
DEPENDS_LIBS = [
{
"root" : '../awtk-mvvm',
'shared_libs': ['mvvm'],
'static_libs': []
},
{
"root" : '../awtk-restful-httpd',
'shared_libs': ['httpd'],
'static_libs': []
}
]
helper.set_deps(DEPENDS_LIBS)
```
2021-02-24 17:12:02 +08:00
> 注意helper.set\_deps 一定要在 helper.call 之前调用。
2020-11-24 09:28:40 +08:00
## 依赖描述内容
* root 第三方库的根目录。建议使用相对于应用程序的相对路径。
如:
```
"root" : '../awtk-mvvm',
```
* shared_libs 第三方库提供的共享库列表(数组),不带扩展名和 lib 前缀。
如:
```
"shared_libs" : ["a","b","c"]
```
* static_libs 第三方库提供的静态库库列表(数组),不带扩展名和 lib 前缀。
如:
```
"static_libs" : ["a","b","c"]
```
* libpath 库所在的路径,相对于前面指定的 root 路径。缺省为:["lib", "bin"]
如:
```
"libpath" : ["libs", "bin"]
```
* cpppath 头文件所在的路径,相对于前面指定的 root 路径。缺省为:["src"]
如:
```
"cpppath" : ["includes", "src"]
```
* cflags C 语言的 flags 定义(可选)。
如:
```
"cflags" : " -DNDEBUG=1 "
```
* cxxflags C++语言的 flags 定义(可选)。
* ccflags C/C++语言的 flags 定义(可选)。
## 完整示例
* [awtk-mvvm-c-hello](https://github.com/zlgopen/awtk-mvvm-c-hello/blob/master/SConstruct)