【问题标题】:Nim: Include C header for PosixNim:包含 Posix 的 C 标头
【发布时间】:2014-07-01 19:13:08
【问题描述】:

我正在尝试使用 Nim Posix 库,特别是文件系统统计信息:

http://nim-lang.org/docs/posix.html#Stat

根据我对其他 Nim 模块的测试,导入和使用应该是这样的:

import posix

var stats: Stat
stat("/", stats)
echo stats.st_blksize

但是编译器给了我一个

Error: undeclared identifier: 'Stat'

我是否必须在编译时添加一些手动包含,或者我在导入时遗漏了什么?

【问题讨论】:

    标签: nim-lang


    【解决方案1】:

    您可能会将这些行放入名为posix.nim 的文件中。这是一个问题,因为 nim 编译器会看到 posix 模块已经被导入,并且不会在标准库中查找任何其他模块。解决方案是将您的程序重命名为 po.nim 或其他名称。

    一旦你克服了这种不幸的行为,你会发现代码无法编译,因为stat proc 返回一个cint,你没有分配给任何东西:

    po.nim(4, 4) Error: value of type 'cint' has to be discarded
    

    您可以discard the value。以下修改后的版本在 nimrod 编译器的稳定版本 0.9.4 上为我编译和运行:

    import posix
    
    var stats: Stat
    discard stat("/", stats)
    echo stats.st_blksize
    

    【讨论】:

    • 完美,您猜对了,谢谢!现在可以使用了。
    猜你喜欢
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 2010-09-28
    相关资源
    最近更新 更多