问题标签 [lld]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - 如何更改默认的 rustc / Cargo 链接器?
我想让 rustclld
用作链接器,而不是ld
在特定的 crate 中。所以我.cargo/config
在我的项目目录中创建了以下内容:
这会导致链接器错误:
与rust-lld
. 如果我设置linker = "ld"
(这应该是默认值,对吗?),我会得到
我试图手动解决所有丢失的库(使用-C link-arg=--library-path=/usr/lib/x86_64-linux-gnu
等),但它只会导致错误的链接和段错误的二进制文件。
有趣的是,如果我/usr/bin/ld
用符号链接替换/usr/bin/ld.lld
,它会很好用(没有错误,从编译的二进制文件中我看到它确实与 链接lld
)。但是,我不想制作lld
系统范围的链接器,我只想在特定的 Rust crate 中使用它。
那么更改默认 rustc 链接器的正确方法是什么?
c++ - 使用 GCC 编译但与 LLVM LLD 链接时,LTO 是否有效?
我最近发现了 LLVM 的链接器,它因链接lld
速度非常快而受到称赞。事实上,我对其进行了测试,结果非常棒,与gold
.
但是,在谈到链接时优化时,我的知识是有限的。据我通过阅读互联网上的资料了解到,目标文件中产生了一些额外的代码,代表一些内部编译器结构,然后在链接阶段使用。因此,我担心的是链接时优化(及其好处)是否受此编译器/链接器组合的影响。我将不胜感激有关此事的一些解释!
我使用gcc
了版本9.2.0
和lld
版本10.0.0
。
我用于生成目标文件的命令:
对于链接:
linux - 有没有办法在 ELF 二进制文件开始执行时自动设置环境变量?
我有一个mytest
使用 Clang 和 bfd/lld 创建的二进制可执行文件,为了让它正常工作,我必须将环境变量传递ASAN_OPTIONS="use_sigaltstack=1"
给它,但我想避免每次我想运行时都必须手动输入从命令行执行。
当然,我可以创建一个包装脚本,但这会增加更多的复杂性。
有没有办法在创建二进制文件时将环境变量及其值附加到二进制文件,以便在执行开始时自动设置它?
在我的代码中设置环境变量为时已晚,因为 Asan 在我的代码开始运行之前读取了环境变量。
c++ - 如何在 Windows 上将 lld 与 CMake 一起使用?
我正在尝试使用 CMake 和 clang + lld ( http://releases.llvm.org/ ) + mingw ( https://sourceforge ) 编译 SDL2 ( https://www.libsdl.org/download-2.0.php ) .net/projects/mingw-w64/ ) Windows 10 上的标头。尽管我付出了很多努力,但我似乎无法让 CMake 在 mingw ld 链接器上使用 lld 链接器。
我目前使用批处理文件构建 sdl2:
我试过无济于事:
环境
-fuse-ld=lld.exe
环境
LDFLAGS=lld.exe
环境
-DCMAKE_LINKER=lld.exe
解决方案来自:CMake:使用自定义链接器
任何帮助将不胜感激。
hyperlink - 使用 Clang 和 LLVM ELF ld.LLD 链接器时,如何从可执行文件中删除符号?
我正在使用 Clang 9.0.0 构建并与 ld.lld 链接器链接
但是,与使用通常的 GCC 链接器 LD 不同,此选项(--strip-all 或 -s)无法识别
谁能建议我应该做些什么来去除符号?
(我的发布模式 hello_world.exe 大小对于 GC 是 15 kb,但对于 Clang 是 230 kB :-( 这可能会产生一些不利影响而没有任何好处)。
这不是 ld.lld 的选项吗?
谢谢
c++ - lld-link 错误:在 Windows10 上尝试与 libcmt.lib 链接时没有输入文件
我正在编译一个非常简单的main.c
:
我正在使用以下选项进行编译:
我得到我main.o
的输出。现在我使用lld-link.exe
以下选项进行链接:
我收到以下错误:lld-link: error: no input files
但是很明显main.o
,最后一个参数是你放置输入文件的地方。还要记住,我必须链接反对libcmt.lib
才能获得mainCRTStartup
函数的符号。
c - 未安装 Visual Studio 的 mainCRTStartup
有没有办法在没有安装 Visual Studio 的情况下链接 mainCRTStartup?我的 Visual Studio 安装中有 libcmt.lib,它适用于在我的计算机上进行链接。但是,我希望能够在无需安装 Visual Studio 的情况下进行构建和链接。
我在 Windows 10 上使用 Clang 和 LLD 9.0.0。
windows - 在 Windows 下构建 chromium:ninja -libpath 无法识别空间(即使在引用路径中!)
当我终于到达建筑部分时:
autoninja -C out\Default chrome
我收到错误:
Files\SQLXML:没有这样的文件或目录 lld-link:错误:lib 失败
显然 -libpath 参数未正确解析,尽管它在引号中:
"-libpath:C:\Program Files\SQLXML 4.0\bin\"
失败的命令:
忍者:进入目录 `out\Default' [18 个进程,68/41674 @ 17.3/s:3.9...ic_annotations/dynamic_annotations.lib
失败:obj/base/third_party/dynamic_annotations/dynamic_annotations.lib ninja -t msvc -e environment.x64 -- ....\third_party\llvm-build\Release+Asserts\bin\lld-link.exe /lib /nologo "-libpath:D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.23.28105\ATLMFC\lib\x64" "-libpath:D:\Program Files (x86)\ Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.23.28105\lib\x64" "-libpath:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "- libpath:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\ucrt\x64" "-libpath:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\嗯\x64" "-libpath:D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.23.28105\ATLMFC\lib\x86" "-libpath:D:\Program Files (x86)\Microsoft VisualStudio\2019\Enterprise\VC\Tools\MSVC\14.23.28105\lib\x86" "-libpath:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\嗯\x86" "-libpath:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\ucrt\x86" "-libpath:C:\Program Files (x86)\Windows Kits\10\ lib\10.0.18362.0\um\x86" "-libpath:C:\Program Files (x86)\SQLXML 4.0\bin\" "-libpath:C:\Program Files\SQLXML 4.0\bin\" /ignore:4221 / llvmlibthin /OUT:obj/base/third_party/dynamic_annotations/dynamic_annotations.lib @obj/base/third_party/dynamic_annotations/dynamic_annotations.lib.rsp"-libpath:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86" "-libpath:C:\Program Files (x86)\SQLXML 4.0\bin\" "-libpath :C:\Program Files\SQLXML 4.0\bin\" /ignore:4221 /llvmlibthin /OUT:obj/base/third_party/dynamic_annotations/dynamic_annotations.lib @obj/base/third_party/dynamic_annotations/dynamic_annotations.lib.rsp"-libpath:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86" "-libpath:C:\Program Files (x86)\SQLXML 4.0\bin\" "-libpath :C:\Program Files\SQLXML 4.0\bin\" /ignore:4221 /llvmlibthin /OUT:obj/base/third_party/dynamic_annotations/dynamic_annotations.lib @obj/base/third_party/dynamic_annotations/dynamic_annotations.lib.rsp
Files\SQLXML:没有这样的文件或目录
lld-link:错误:lib 失败
haskell - 堆栈构建失败并出现 LLD 错误
我正在尝试使用stack
(特别是)构建一些 Haskell 包haskell-ide-engine
,hlint
但它们都失败并出现许多ld.lld
错误消息,所有错误消息都与R_X86_64_32S
重定位有关,例如:
我尝试配置stack
为使用不同的链接器(使用ghc-options
标志),但我无法让它工作,它总是使用lld
.
有谁知道我可以如何更改stack
链接器,或以其他方式修复错误?
谢谢!