首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有多个exes和libs的zig项目

带有多个exes和libs的zig项目
EN

Stack Overflow用户
提问于 2021-07-15 08:17:33
回答 1查看 556关注 0票数 1

我想要设置一个zig项目,它构建了几个可执行文件和静态库。这就是我想要的结构:

代码语言:javascript
复制
build.zig
scr/
    exe0/
        depends on lib0, lib1
    exe1/
        depends on lib1
    lib0/
    lib1/

我认为这样做的一种方法是在单个build.zig中使用这样的方法来描述所有这些:

代码语言:javascript
复制
const lib0 = b.addStaticLibrary("lib0", "src/lib0/index.zig");
const lib1 = b.addStaticLibrary("lib1", "src/lib1/index.zig");

const exe0 = b.addExecutable("exe0", "src/exe0/main.zig");

exe0.linkLibrary(lib0);
exe0.linkLibrary(lib1);

const exe1 = b.addExecutable("exe1", "src/exe1/main.zig");
exe1.linkLibrary(lib1);

这是个好办法吗?是否有可能在单独的文件中描述前夫和李?在这种情况下你是怎么联系他们的?

编辑:我想我并不真的需要静态库,而是可以实际使用包。就像我想的那样。不过,我仍然对静态库方法感兴趣。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-15 19:38:10

为了能够使用静态库方法,您需要显式地设计整个公共接口以使用C。这是相当紧缩的(例如你甚至不能直接在API边界使用切片),如果你没有从这个实践中获得任何其他好处,你应该使用包,或者更简单地说,只是使用一个相对路径的@import()文件。

关于拆分build.zig文件:如果您愿意,可以在每个项目中创建构建器函数,以便每个项目都可以定义自己的详细信息(如果确实需要的话)。不过,我还没在野外见过这样的人。

如果您想要一个连接几个依赖关系的强大build.zig文件的示例,请查看Zig摊牌:https://github.com/zig-community/Zig-Showdown

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68390247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档