awtk/docs/how_to_use_3rd_libs.md
2021-02-24 17:12:02 +08:00

79 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 如何引用第三方库
使用第三方库时,在应用程序的 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)
```
> 注意helper.set\_deps 一定要在 helper.call 之前调用。
## 依赖描述内容
* 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)