代码之家  ›  专栏  ›  技术社区  ›  Jacob Birkett

LDC2-I选项导致无法解析的外部

  •  0
  • Jacob Birkett  · 技术社区  · 6 年前

    我使用的是最新的ldc2beta,当使用-I(也可以在中查找导入)运行编译器时,它会因未解析的外部而失败。这是我的命令。

    $ ldc2 "source\setup.d" -I "source" -J "build\vars" -of "build\bin\setup.exe" -m32 -g
    setup.obj : error LNK2019: unresolved external symbol __D6common17createErrorDialogFxC9ExceptionZv referenced in function __Dmain
    setup.obj : error LNK2019: unresolved external symbol __D6common14getConsoleArgsFxPuZAAya referenced in function __D5setup20getAvailableBrowsersFZ14__foreachbody1MFKC3std7windows8registry3KeyZi
    setup.obj : error LNK2001: unresolved external symbol __D6common12__ModuleInfoZ
    build\bin\setup.exe : fatal error LNK1120: 3 unresolved externals
    Error: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86\link.exe failed with status: 1120
    

    setup.d 取决于 common.d .

    $ ldc2 "source\setup.d" "source\common.d" -J "build\vars" -of "build\bin\setup.exe" -m32 -g
    

    任何解决方案或更正都将不胜感激。

    注:

    1 回复  |  直到 6 年前
        1
  •  2
  •   Adam D. Ruppe    6 年前

    -I 告诉它在哪里可以找到要导入的源代码。假设实际的目标代码将在传递给链接器的某个预编译库(或单独的.obj文件)中找到。

    -i 除了 -我 -我 告诉它在哪里找到导入文件。

    • 在命令行上传递所有源文件(如果它是由其他代码生成的,只需将该代码更改为遍历目录lol)
    • 获取一个最新的编译器版本并添加 -我 到build命令。