【发布时间】:2019-10-01 07:27:45
【问题描述】:
好的,这是我的问题:
我有一个正在运行的 DUB 项目,它可以生成一个应用程序。我决定在我的dub.json 文件中还需要一个“库”配置:
"configurations": [
{
"name": "application",
"targetType": "executable"
},
{
"name": "library",
"targetType": "library",
}
],
所以,现在当我使用dub build --config=library 构建项目时,它会在同一目录中生成一个libXXXX.a 文件。
到目前为止,一切都很好。
我尝试使用这个库(实际上是一个来自测试 C 应用程序的标记为 extern "C" 的小测试函数)。
所以,我使用 gcc -c ctest.c 编译我的 C 应用程序,然后像 dmd libMYLIBRARY.a ctest.o 一样将它们链接在一起。
现在,问题来了:
在最后一步中,链接器抱怨缺少许多符号 - 所有符号都来自 外部依赖项(2 个目标文件和几个 .a 库)在将项目构建为应用程序时进行链接。
那么,问题是……我该如何解决这个问题?
我的意思是...我应该将我的测试 C 应用程序与所有原始依赖项链接起来(诚然,这不会使库非常便携),还是有任何方法可以解决它,以便任何人都可以使用我的库,仅通过链接到我的libXXXXX.a 文件?
【问题讨论】: