ffi_build
Installation
SKILL.md
仓颉C互操作配置构建指导
0. 各平台库文件命名对照
| 平台 | 动态库 | 静态库 |
|---|---|---|
| Linux | lib<name>.so |
lib<name>.a |
| macOS | lib<name>.dylib |
lib<name>.a |
| Windows | lib<name>.dll |
lib<name>.lib |
注意:Windows 平台上依赖动态库,目前 cjc 和 cjpm 实现有差异:编译时,cjc 对动态库是否有
lib前缀不敏感,cjpm 则要求动态库必须有lib前缀。运行时,cjc 编出的可执行文件,依赖的动态库必须加上lib前缀,而 cjpm 构建出的可执行文件,依赖的动态库一定不能有lib前缀。请务必熟悉这个规则(实际是规格问题,未来会修复),保证能正常构建和运行。
1. cjc 编译器链接选项
| 选项 | 说明 |
|---|---|
-L <path> / --library-path <path> |
指定库文件搜索目录(优先级高于 LIBRARY_PATH 环境变量) |
-l <name> / --library <name> |
链接库文件,格式为 lib[name].[extension](如 -l draw 链接 libdraw.so/.a/.dll) |