如何在Solus Linux上安装CosmoNim(GCC)?(SEGFULT)

如何在Solus Linux上安装CosmoNim(GCC)?(SEGFULT),linux,gcc,nim-lang,compiler-flags,linker-flags,Linux,Gcc,Nim Lang,Compiler Flags,Linker Flags,我可以使用哪些方法或工具来帮助解决以下问题 我想在Solus Linux上使用。它可以在其他linux发行版上工作,但生成的可执行文件在Solus linux上构建时会出错。CosmoNim在Ubuntu上为我工作很好 是使用Cosmopolitan的Nim包装器 是一个用于生成使用GCC构建的通用二进制文件的库和方法 Nim是C(使用GCC自动编译)的传输程序 因此,CosmoNim应该可以在许多linux发行版上开箱即用(而且确实可以在Ubuntu上使用) 但是,在执行objcopy生成完

我可以使用哪些方法或工具来帮助解决以下问题

我想在Solus Linux上使用。它可以在其他linux发行版上工作,但生成的可执行文件在Solus linux上构建时会出错。CosmoNim在Ubuntu上为我工作很好

  • 是使用Cosmopolitan的Nim包装器
  • 是一个用于生成使用GCC构建的通用二进制文件的库和方法
  • Nim是C(使用GCC自动编译)的传输程序
  • 因此,CosmoNim应该可以在许多linux发行版上开箱即用(而且确实可以在Ubuntu上使用)
  • 但是,在执行
    objcopy
    生成完整的通用可执行文件之前,CosmoNim无法在Solus上生成一个运行正常的可执行文件(运行时的可执行文件segfaults)
  • 但是!Cosmopolitan(直接使用GCC)HelloWorld在Solus上工作
  • 所以Nim要么缺少GCC的一些编译或链接标志,要么做了一些不应该做的事情
  • 我怎样才能在解决这个问题上取得进展
使用GDB时,它会报告segfault的main()函数: $gdb hello.elf

Program received signal SIGSEGV, Segmentation fault.
0x0000000000413005 in NimMain ()
121 N_CDECL(void, NimMain)(void) {
这是从源文件中的第121行开始的:

N_CDECL(void, NimMain)(void) {
        void (*volatile inner)(void);
        PreMain();
        inner = NimMainInner;
        initStackBottomWith((void *)&inner);
        (*inner)();
}

int main(int argc, char** args, char** env) {
        cmdLine = args;
        cmdCount = argc;
        gEnv = env;
        NimMain();
        return nim_program_result;
}
$(gdb)信息函数

121:    void NimMain(void);
117:    void NimMainInner(void);
137:    void NimMainModule(void);
108:    void PreMain(void);
102:    void PreMainInner(void);
129:    int main(int, char **, char **);

任何GDB/编译器UTIL向导都知道如何对此进行反思?

CosmoNim包中的一些“nim.cfg”标志正在使用Solus发行版中损坏的库。我和Solus玩了一会儿,开箱即用,它给了我三个“XXXX.so丢失了”(例如,刚刚打开一个终端)。@xbello听起来很有希望!你知道哪个图书馆吗?