如何仅为依赖threadpool的Nim二进制文件启用--threads:on
解决Nim项目多二进制文件的线程参数差异化编译问题
步骤1:清除全局线程配置
先删除项目根目录nim.cfg中的--threads:on配置,避免全局默认线程设置干扰局部编译规则。
步骤2:修改nimble文件,为每个目标单独指定编译参数
替换现有nimble配置为以下内容,通过build块为不同编译目标设置对应的线程参数:
srcDir = "src" binDir = "bin" namedBin = { "program": "program", "prog_threads": "program-threads", }.toTable() # 为不带线程的目标禁用线程支持 build "program": options("--threads:off") # 为需要线程的目标启用线程支持 build "prog_threads": options("--threads:on")
编译命令
- 编译不带线程支持的
program:nimble build program - 编译带线程支持的
prog_threads:nimble build prog_threads - 一次性编译所有目标:
执行此命令时,Nimble会自动为每个目标匹配对应的线程参数。nimble build
注意事项
确保src/prog_threads.nim已正确导入threadpool库,而src/program.nim未引入该库,避免出现编译依赖错误。
内容的提问来源于stack exchange,提问作者Andrea T.
相关产品推荐
相关产品推荐

