代码之家  ›  专栏  ›  技术社区  ›  user69453

导出动态和导出所有符号有什么区别?

  •  0
  • user69453  · 技术社区  · 4 年前

    在用gcc或clang编译Cygwin之后,ld抱怨

    /usr/bin/ld: warning: --export-dynamic is not supported for PE+ targets, did you mean --export-all-symbols?
    

    按照建议更改linkerflag可以修复此行为,但我不确定这是否正确。因此,问题很简单:

    有什么区别吗 --export-dynamic --export-all-symbols ?

    0 回复  |  直到 4 年前
        1
  •  1
  •   Florian Weimer    4 年前

    --export-dynamic 用于精灵目标:

    请注意,此选项特定于ELF目标端口。PE目标支持一个类似的函数,用于从DLL或EXE导出所有符号;请参阅 --export-all-symbols

    --export-all-symbols 用于PE目标:

    此选项特定于链接器的i386 PE目标端口

    很可能把两者都归入 --导出动态 (因为这是第一次),但是实现是完全不同的,这泄露给了 ld 命令行界面。