你会如何用D语言开发一个库?
我想编写一个简单的图像处理库,然后我想在应用程序中使用它.
我正在寻找与Maven系统的Java JAR(构建,安装,在其他项目中使用)或任何其他包管理工具的类比.
我想知道的是
我问这个是因为我没有Java或C++的直觉.
那么D的故事是什么?
我使用Visual-D开发代码,但我也安装了DUB.
您可以通过设置目标类型来使用 dub 来完成此操作,但我将展示另一种方法。
\n\n通过使用MakefileForD,
\n\n为什么 ?
\n\n因为 dub 将 lib 和 bin 安装到~/.dub
. 并且无法安装到共享目录。\n例如Linux 文件系统层次结构标准告诉二进制文件应该转到/usr/bin
.
你不能通过使用 dub 来尊重这个标准。
\n\n与 Makefile 共享库,
\n\n创建一个项目
\n\nmyproject\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 myproject\n
Run Code Online (Sandbox Code Playgroud)\n\n将Makefile_lib安装到根目录并将其重命名为Makefile。
\n\n将command.make安装到根目录
\n\n你现在有
\n\nmyproject\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 command.make\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Makefile\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 myproject\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.d\n
Run Code Online (Sandbox Code Playgroud)\n\n设置源目录
\n\nMakefile 文件的第 5 行
\n\nexport REPO_SRC_DIR = src\n
Run Code Online (Sandbox Code Playgroud)\n\n建造
\n\n您现在所要做的就是:
\n\nmake DC=dmd shared-lib\n
Run Code Online (Sandbox Code Playgroud)\n\nDC接受dmd ldc和gdc编译器
\n\n安装
\n\nmake install\n
Run Code Online (Sandbox Code Playgroud)\n\n设置自定义安装目录
\n\nmake install PREFIX=/usr LIB_DIR=/usr/lib64\n
Run Code Online (Sandbox Code Playgroud)\n\n对于仅相同的二进制文件,而不是采用 Makefile_lib,您需要采用 Makefile_exe
\n