d语言的dmd怎么将一堆文件组成的包a编译成静态库liba下次其他包b如果用到a库直接静态链接liba即可过程是怎样的需要怎么编译指定参数给个详细的例子说明另外不要用dub直接用dmd原生命令说明最好能利用pragma在代码中指定lib依赖
编译静态库liba的过程如下:
- 将一堆文件组成的包a编译成目标文件,例如:
dmd -c -O -release -ofobj/a.o src/a.d
dmd -c -O -release -ofobj/b.o src/b.d
dmd -c -O -release -ofobj/c.o src/c.d
- 将目标文件打包成静态库liba,例如:
ar rcs lib/liba.a obj/a.o obj/b.o obj/c.o
- 在其他包中使用静态库liba,例如:
dmd -c -O -release -ofobj/d.o src/d.d
dmd -o bin/myapp obj/d.o -L-Lib -L-la
其中,-L-Lib参数指定库文件的路径,-L-la参数指定链接liba静态库。也可以使用pragma指定依赖关系,例如:
pragma(lib, "liba");
这样在编译时会自动链接liba库。
原文地址: http://www.cveoy.top/t/topic/gYza 著作权归作者所有。请勿转载和采集!