【问题标题】:Building Chromium, WebRTC without LTO在没有 LTO 的情况下构建 Chromium、WebRTC
【发布时间】:2014-05-13 18:09:19
【问题描述】:

我在 Arch Linux x86_64 上,正在尝试构建 WebRTC 库。执行此操作时出现编译错误:

[ghilliard@diadem trunk]$ ninja -C out/Release peerconnection_server
ninja: Entering directory `out/Release'
[1/1] LINK peerconnection_server
FAILED: c++ -Wl,-z,now -Wl,-z,relro -Wl,--fatal-warnings -pthread -Wl,-z,noexecstack -fPIC -B/home/ghilliard/Code/webrtc-attempt2/trunk/third_party/binutils/Linux_x64/Release/bin -Wl,--disable-new-dtags -m64 -Wl,--icf=none -fuse-ld=gold -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections -o peerconnection_server -Wl,--start-group obj/talk/examples/peerconnection/server/peerconnection_server.data_socket.o obj/talk/examples/peerconnection/server/peerconnection_server.main.o obj/talk/examples/peerconnection/server/peerconnection_server.peer_channel.o obj/talk/examples/peerconnection/server/peerconnection_server.utils.o obj/talk/libjingle.a obj/net/third_party/nss/libcrssl.a obj/third_party/jsoncpp/libjsoncpp.a  -Wl,--end-group -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -ldl -lcrypto -lrt -lXext -lX11 -lXcomposite -lXrender -lexpat
/home/ghilliard/Code/webrtc-attempt2/trunk/third_party/binutils/Linux_x64/Release/bin/ld.gold: -plugin: unknown option
/home/ghilliard/Code/webrtc-attempt2/trunk/third_party/binutils/Linux_x64/Release/bin/ld.gold: use the --help option for usage information
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

链接时间优化似乎存在问题。但是,我无法弄清楚如何在不启用 LTO 的情况下构建 WebRTC。如果我手动运行失败的命令并附加-fno-lto,则链接正常。如何在 gyp 配置中添加或更改编译器/链接器标志,以便将其应用于所有内容?

【问题讨论】:

    标签: webrtc chromium gyp ninja lto


    【解决方案1】:

    ninja 不尊重环境变量,但 gyp 尊重。

    所以在设置完 LDFAGS 环境变量后,你必须运行gyp_chromium 让 gyp 生成正确的 ninja 构建文件。

    export LDFLAGS='-fno-lto' build/gyp_chromium ninja -C out/Release peerconnection_server

    【讨论】:

    • 我现在遇到了其他构建错误(我可能应该弄清楚如何检查 WebRTC 的稳定版本)但这似乎解决了链接器的抱怨。谢谢!
    【解决方案2】:

    您可能会尝试在构建之前在环境变量中设置编译器/链接器标志:

    export CFLAGS="${CFLAGS} -fno-lto"
    export CXXFLAGS="${CXXFLAGS} -fno-lto"
    export LDFLAGS="${LDFLAGS} -fno-lto"
    ninja -C out/Release
    

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 2010-11-20
      • 2015-09-22
      • 1970-01-01
      • 2020-12-02
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 2015-09-22
      相关资源
      最近更新 更多