簡體   English   中英

如何編寫靜態gdbserver

[英]How to complie a static gdbserver

我已經對GDB的源代碼進行了一些更改,因此我想編譯一個新的可執行文件。 我已經成功編譯了一個新的GDB,但是當編譯gdb-server時,它失敗了,我需要在Makefile中使LDFLAGS = -static ,因為Android沒有某些庫。 失敗消息是這樣的:

gcc -shared -fPIC -Wl,--no-undefined -g -O2     -I. -I. -I./../common -I./../regformats -I./.. -I./../../include -I./../gnulib/import -Ibuild-gnulib-gdbserver/import -Wall -Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral -Wno-char-subscripts -Wempty-body  -DGDBSERVER \
-static  -Wl,--dynamic-list=./proc-service.list -o libinproctrace.so ax-ipa.o tracepoint-ipa.o format-ipa.o utils-ipa.o regcache-ipa.o remote-utils-ipa.o common-utils-ipa.o tdesc-ipa.o print-utils-ipa.o rsp-low-ipa.o amd64-linux-ipa.o linux-amd64-ipa.o -ldl -pthread
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.6/crtbeginT.o: relocation R_X86_64_32 against `__DTOR_END__' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-linux-gnu/4.6/crtbeginT.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libinproctrace.so] Error 1

使用ld時失敗,因此我想知道如何編譯靜態gdbserver?

非常感謝。

gcc -shared -fPIC ... -static ... -o libinproctrace.so ...

在此命令中,您libinproctrace.so GCC將帶有-static標志的共享庫libinproctrace.so鏈接到您。 GCC的回答: “對不起Dave,恐怕我做不到”

所以不要那樣做。 而是編輯Makefile並將-static專門添加到gdbserver的鏈接行,而不是添加到命令行中的所有內容

暫無
暫無

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

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