=1.2.10" } 但是当我运行它时它会立即抛出一个运行时错误-6ren">
gpt4 book ai didi

d - 使用 DUB 管理 C 依赖项

转载 作者:行者123 更新时间:2023-12-04 18:40:16 26 4
gpt4 key购买 nike

我正在测试 DUB,我想安装 derelcitsdl2

"dependencies": {
"derelict-sdl2": ">=1.2.10"
}

但是当我运行它时它会立即抛出一个运行时错误。它告诉我它找不到 *.so 文件。

当我构建一个跨平台项目时,我不想依赖于这样的全局系统包,这很可能是 Windows 上的一个问题。

是否可以使用 DUB 运行构建脚本?

看起来像这样的东西
"dependencies": {
"derelict-sdl2": ">=1.2.10"
}
"c-dependency-sdl":{
git clone sdllink && cd sdl && cmake . && make && make install clib
}

我没有在 DUB 网站上找到告诉我这很可能不可能的信息。

您如何为不同平台构建项目?

我需要为此编写 .sh/.bat 脚本吗?我将如何指定本地搜索路径?

最佳答案

据我所知,dub 不处理非dub 依赖项的安装。您可以使用 systemDependencies 描述系统库要求。条目,它将“在注册表上可见,并在链接器错误的情况下显示”,但它们不会自动安装。

您可以使用 preGenerateCommandspreBuildCommands像上面描述的那样执行shell命令。我会像上面描述的那样将安装脚本放在 .sh/.bat 脚本中(因此它们可用于非配音用户),然后将类似的内容放在 dub.json 中。 :

"preGenerateCommands-posix":   [ "./setup.sh"  ],
"preGenerateCommands-windows": [ "./setup.bat" ]

在 linux 上,我通常会假设必要的 .so文件在标准搜索路径上可用(或可通过包管理器安装),特别是对于像 sdl 这样常见的东西。

至于指定搜索路径,我只使用 lflags :
"lflags": [ "-L./ext/sdl/lib" ] (or wherever the local libs are)

来源: DUB Package Format

完全披露:我实际上还没有尝试使用 preGenerateCommands ,但这听起来正是您所需要的。

关于d - 使用 DUB 管理 C 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27668272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com