You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建支持内部依赖的NASM库单体仓库?

NASM通用库单体仓库搭建疑问

我在开发NASM项目时,意识到将argparser这类通用功能代码抽离为外部库更合理。现有代码结构如下:

argparser.inc

extern argparse

struc command 
  .arg_count:   resq    1
  .name:        resq    1
  .fn:          resq    1
endstruc

argparser.asm

%include "argparser.inc"
%include "linux.inc"
%include "string.inc"

section .text

;;
; Parse arguments, if it does not match exits.
; @param RDI - argc
; @param RSI - argv
; @param RDX - commands
; @param RCX - commands_help
; @return RAX - pointer to the command struct
;;
argparse:
global argparse:function
...

当前我通过%include "argparser.inc"在其他文件中引入该模块。这类代码属于通用依赖而非项目专属,最初计划为argparser单独建仓,通过git子模块引入到项目的/myproject/libs/argparse/目录,修改引入路径和Makefile即可。但考虑到还有string.asm/string.inc等其他通用功能,打算将所有NASM库整合为一个单体仓库,方便后续项目复用。

但随即遇到问题:单体仓库内的库存在相互依赖(比如argparser依赖string库)。如果回到单库单仓加子模块的方式,会出现嵌套依赖结构:

.
└── myproject/
    ├── arun
    ├── ...
    └── libs/
        └── argparser/
            └── libs/
                └── string

这种结构类似npm的node_modules,可能陷入“依赖地狱”。请问是否可以搭建如下结构的NASM库单体仓库,既支持库间内部依赖,又能通过git子模块引入目标库及其依赖(类似高级语言包管理器的功能):

.
└── lib-monorepo/
    ├── argparser/
    │   ├── argparser.inc
    │   ├── argparser.asm
    │   ├── Makefile
    │   └── README.md
    ├── string/
    │   └── ...
    └── ...

内容的提问来源于stack exchange,提问作者itasahobby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 21:45:24