簡體   English   中英

靜態鏈接libc ++鐺

[英]Static linking libc++ clang

我試圖使用Clang在Linux(使用此AUR https://aur.archlinux.org/packages/libc%2B%2B/的 Arch中)靜態鏈接標准庫libc ++( https://libcxx.llvm.org/ )。

我收到錯誤/usr/bin/ld: cannot find -lc++

該錯誤與代碼無關,甚至在“ Hello World”中也會出現。

如果刪除-static選項,它將編譯(和鏈接),並且生成的可執行文件可以工作。

我不想使用libstdc ++(我有我的理由不願不集中討論),並且鏈接必須是靜態的(這是必需的)。

我完全意識到,如果無法訪問發生這種情況的機器,則很難調試這些東西。 但是,碰巧它是兩台不同的機器(都與Arch一起使用),所以也許這是我忘記的事情。

到目前為止,我已經嘗試過的內容在這里進行了解釋( https://releases.llvm.org/7.0.0/projects/libcxx/docs/UsingLibcxx.html

應該起作用的基本命令是以下clang++ -static -stdlib=libc++ -std=c++17 main.cpp -lc++abi

那是因為您的系統上沒有安裝靜態的libc++ (即libc++.a )。 Archlinux在5年前默認不安裝靜態庫,因此要執行完全靜態的鏈接將是一項挑戰。 您將必須遞歸地對所有依賴庫進行靜態構建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM