static-linking

    3熱度

    2回答

    我需要創建一個共享庫,其自身的依賴包括libc/libstdC++必須靜態鏈接到它才能生成自包含的二進制文件。我試圖做到這一點 g++ -c -fpic -o foo.o foo.cpp g++ -static -shared -o foo.so foo.o 其失敗: /usr/bin/ld.bfd.real: /usr/local/lib/gcc/x86_64-unknown-linux-

    4熱度

    1回答

    我試圖建立使用靜態庫中的項目,以便二進制即使沒有安裝庫中使用。不過,當我嘗試這樣做時,我會收到很多關於未定義符號的錯誤。 望着圖書館,我看到它有噸未定義的符號,儘管這是一個.a靜態庫: nm - u /usr/local/lib/libthis.a .... U EVP_DigestFinal_ex U EVP_DigestInit_ex U EVP_DigestUpdate U EVP

    1熱度

    1回答

    我試圖用Visual Studio 14鏈接最新的Lua庫和我的x86應用程序。我在其他依賴關係下添加了庫,並且包含了相應的頭文件(lua.hpp,我也試過了。手動extern "C"方法),我編譯我的模塊作爲x86的二進制和使用權的Lua二進制文件(86)我得到的錯誤是: LNK2019 unresolved external symbol "struct lua_State * __cdecl

    0熱度

    1回答

    我已經使用buildroot生成了uclib,並用它來編譯mpich for ARM設備。然後我創建了Android項目並將libmpich.a和Include文件夾複製到此處的項目Android.mk中: LOCAL_PATH := $(call my-dir) # static library info LOCAL_MODULE_FILENAME:= libmpich LOCAL_MO

    6熱度

    1回答

    如果你嘗試編譯如下圍棋程序: package main import _ "crypto/tls" func main() { } 你會用一個動態鏈接轉到二進制拉閘。這對我來說很煩人(我在Docker容器內部構建了一個Go二進制文件,它使用來自我的主機的不同libc,這將導致二進制文件無法在我的主機上運行)。 如何一個強制去靜態構建這樣的程序?

    0熱度

    1回答

    我的機器使用Ubuntu操作系統。 我建立了Qt 5.5.1手動對靜態鏈接。配置內置,指定的路徑安裝到: $ ./configure -static -prefix /home/myname/qt_src/installed/ 然後我感動內置的東西到另一個Ubuntu的機器,並從殼試圖調用QMAKE: $ qmake CONFIG+=release CONFIG-=debug /home/ot

    1熱度

    1回答

    已下載lua5_1_4_Sources.tar.gz並使用TDM-GCC 4.5.1從源代碼編譯liblua.a。 樣樣精編: Linking .. ar rcs liblua.a 5.1.4/src/lapi.o 5.1.4/src/lauxlib.o 5.1.4/src/lbaselib.o 5.1.4/src/lcode.o 5.1.4/src/ldblib.o 5.1.4/s r

    2熱度

    1回答

    我的可執行文件與許多靜態庫(通常在Linux上的50到100個壓縮文件)之間鏈接。偶爾在這些檔案中存在依賴性循環。這些庫出現在鏈接命令行上的順序非常重要,請參閱here。嘗試手動訂購這些庫至少是非常耗時的,特別是當存在循環時。 問題:是否有一種實用工具或技術可以分析代碼庫並生成正確的鏈接命令行排序?

    4熱度

    1回答

    我最近開始使用CocoaPods來管理我現有的ios項目中的依賴項。我在運行OS X 10.11.1(El Capitan)的Mac上使用Xcode 7.1.1。 問題是,我似乎仍然必須顯式鏈接構建階段的鏈接二進制與庫部分的框架,或者我得到的錯誤消息是「_OBJC_CLASS _ $ _ Crashlytics」,引用來自:ld:在架構x86_64中找不到符號...我在CocoaPods管理的依賴

    1熱度

    1回答

    我得到static鏈接錯誤,以提升的非頭只庫。讓我們一起解決吧: 最終的二進制文件應該使用分別構建爲更高層的庫(例如libbasemainif.a)構建。其中一層,使用boost::filesystem。 看一看g++命令的簡化vesrion: g++ /mylis/1.a /mylibs/2.a -L/myboost/Linux-x86_64/lib64 -Wl,-rpath,/myboos