static靜態編譯
A. 如何編譯靜態鏈接的程序,通過./configure 把參數-static傳入Makefile。
./configure LDFLAGS=-static
B. 為什麼我用易語言靜態編譯後生成的文件不能用,而是這樣的。應該怎麼辦
只生成了obj文件,沒有鏈接出exe文件,原因可能是link.ini配置錯誤或者link.exe路徑錯誤,也有可能是static_lib中沒有需要的靜態庫。靜態編譯的錯誤原因會顯示在提示區里。
如果是link.ini配置錯誤或者link.exe路徑不對,說明破解不成功,重新破解並正確配置linker。
如果是沒有所需的靜態庫,說明代碼用的指令不支持靜態編譯。
C. 如何編譯生成和調用靜態庫
如何編譯動態庫
gcc test1.c test2.c -shared -fPIC -o libtest.so
使用動態庫
gcc main.c -L. -ltest -o a.out
(
-L : 表示需要庫的路徑
-l:表示需要庫的名稱,如libtest.so,名稱則為test
)
(ps:執行a.out時有可能提示找不到libtest.so文件,這時需要把庫文件放入到/lib等目錄下,或者添加環境變數LD_LIBRARY_PATH,包含有庫文件的路徑即可)

如何編譯靜態庫
gcc -c test1.c test2.c
ar -r libtest.a test1.o test2.o
使用靜態庫
gcc main.c -static -L. -ltest -o a.out
(
-static:可強制編譯時使用靜態庫,如果不使用這個參數,而靜態庫與動態庫同名的話,會優先使用動態庫
D. linux命令gcc–static式什麼意思
gcc 空格 -static 吧?
-static 是讓 gcc 進行靜態編譯,也就是把所有都需要的函數庫都集成進編譯出來的程序上,這個程序就可以不依賴外部的函數庫運行了。
E. 【緊急】C sharp 怎樣「靜態編譯」Windows應用窗口程序
1.靜態編譯QT,使程序可以將靜態庫的形式使用QT,這個好辦,在configure.exe 程序的參數下,給上-static參數即可。
2.QT使用了VC的鏈接庫也要靜態鏈接。這個就有點難辦了,因為QT默認的使用方式是動態的,不過,有了前人的研究就好辦了,打開<qt-
install-dir>\mkspecs\win32-msvc2005\qmake.conf文件(VS2005,如果是VC6,則是<qt-install-dir>\mkspecs\win32-msvc\qmake.conf,
VS2003:<qt-install-dir>\mkspecs\win32-msvc.net\qmake.conf,相信現在沒有人用VS2002吧),將下面兩行:
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_DEBUG = -Zi -MDd
改為:
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_DEBUG = -Zi -MTd
就好了。這是VS2005的示例,如果你是其他版本的VS,則會有些區別,但只要將MD(動態)改為MT(靜態),將MDD(動態調試)改為MTD(靜
態調試),就好了。
如果你有多個版本的VS安裝在系統上,則在configure.exe的命令行參數給上-platform win32-msvc2005,就可以使用VS2005編譯了,其他的VS
版本可以在README中找到:
win32-g++
win32-icc (commercial edition only)
win32-msvc (commercial edition only)
win32-msvc.net (commercial edition only)
win32-msvc2005 (commercial edition only)
改好了,就可以用 configure -platform win32-msvc2005 -debug-and-release -static -fast -qt-sql-sqlite 來配置系統了。
F. QT中怎麼靜態編譯,靜態編譯的步驟是什麼。
Qt採用編譯的方式安裝的時候,配置中默認的編譯方式是動態編譯的,但是有時候你編寫的程序要發布出去,帶很多動態庫文件是很繁瑣的,此時就需要靜態編譯你的程序,Qt要實現靜態編譯必須庫文件也是靜態編譯的,所以在此介紹一下qt如何來進行靜態編譯第一步:下載源碼包Qt/X11版本:qt-x11-opensource-src-4.5.2.tar.gz第二步:解壓縮tarzxvfqt-x11-opensource-src-4.5.2.tar.gz第三步:進入到剛才解壓縮後的文件夾下並進行配置,如下./configure-release-platformwin32-msvc2008-static-nomakeexamples-nomakedemos-no-qt3support-no-scrip
...
by
fengyetang
2010-07-04
回復
(0)
G. c語言有靜態編譯嗎
你說的是庫吧,不是頭文件,頭文件沒關系,
如果要靜態編譯,使用gcc的話,只要加上-static選項就行了
H. 易語言靜態編譯問題
方法1:http://jingyan..com/article/ceb9fb10d9bac48cad2ba0db.html
~~2:http://www.huacolor.com/soft/79330.html
I. Qt Creator 怎樣設置才能實現靜態編譯
Qt默認的編譯方式是動態編譯的,但是有時候編寫的程序要發布出去,帶很多動態庫文件是很繁瑣的,此時就需要靜態編譯程序,Qt要實現靜態編譯必須庫文件也是靜態編譯的,可以用這個命令編譯靜態庫:
1.將C:\Qt\2010.05\qt\mkspecs\win32-g++\qmake.conf文件中的QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
改為
QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
2.在開始菜單里找到Qt Command Prompt並運行,輸入命令: configure -static -debug-and-release -no-exceptions -L "C:\Qt\2010.05\qt\include" -L "C:\Qt\2010.05\qt\lib"
-L指定一下路徑,防止用到vc的頭文
J. gcc靜態編譯之-static-libstdc++、-static-libgcc、-static
未使用-static-libstdc++編譯,ldd:
使用-static-libstdc++編譯,ldd:
-static-libgcc必須和-static-libstdc++搭配使用,單獨使用-static-libgcc不能完全生效
使用-static-libstdc++,但未使用-static-libgcc編譯,ldd:
使用-static-libstdc++ -static-libgcc編譯,ldd:
編譯純靜態程序,不依賴任何so文件,當然也不能用來編譯出so文件
