我正在尝试使用gcc交叉编译一个简单的c程序。在我的例子中,它是一个小的gtk2应用程序:
#include <gtk/gtk.h>
int main(int argc, char *argv[]) {
gtk_init(&argc, &argv);
return 0;
}
我想将它链接到gtk-x11-2.0,它包含gtk_init函数。当通过-L传递时,它显式路径到远程系统的roots,并通过
分析链接器的输出gcc ... -Wl,-verbose ... ,
我可以看到该路径未列为
SEARCH_DIR("= ...")
并导致“对gtk_init的未定义引用...” 但在输出结束时,它显示库已在正确的路径上加载。 请参阅完整的链接描述文件列表:
16:01:37 **** Incremental Build of configuration Default for project
SysrootTest ****
make all
#arm-linux-gnueabihf-g++ -v -g -Wall -mtune=cortex-a8 -march=armv7-a --sysroot=/home/dominik/bbbroot -o simple -L/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf -Xlinker -rpath-link=/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf -I/home/dominik/bbbroot/usr/include/gtk-2.0 -I/home/dominik/bbbroot/usr/include/pango-1.0 -I/home/dominik/bbbroot/usr/include/atk-1.0 -I/home/dominik/bbbroot/usr/include/cairo -I/home/dominik/bbbroot/usr/include/gdk-pixbuf-2.0 -I/home/dominik/bbbroot/usr/include/glib-2.0 -I/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -lgtk-x11-2.0 simple.c
arm-linux-gnueabihf-g++ -v -g -Wall -mtune=cortex-a8 -march=armv7-a --sysroot=/home/dominik/bbbroot -o simple -L/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf -Xlinker -rpath-link=/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf -Wl,-verbose,-L/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf -I/home/dominik/bbbroot/usr/include/gtk-2.0 -I/home/dominik/bbbroot/usr/include/pango-1.0 -I/home/dominik/bbbroot/usr/include/atk-1.0 -I/home/dominik/bbbroot/usr/include/cairo -I/home/dominik/bbbroot/usr/include/gdk-pixbuf-2.0 -I/home/dominik/bbbroot/usr/include/glib-2.0 -I/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -lgtk-x11-2.0 simple.c
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabihf-g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.8.2-16ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/arm-linux-gnueabihf/include/c++/4.8.2 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-armhf-cross/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-armhf-cross --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-armhf-cross --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libgcj --enable-objc-gc --enable-multiarch --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-linux-gnueabihf --program-prefix=arm-linux-gnueabihf- --includedir=/usr/arm-linux-gnueabihf/include
Thread model: posix
gcc version 4.8.2 (Ubuntu/Linaro 4.8.2-16ubuntu4)
COLLECT_GCC_OPTIONS='-v' '-g' '-Wall' '-mtune=cortex-a8' '-march=armv7-a' '-o' 'simple' '-L/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf' '-I' '/home/dominik/bbbroot/usr/include/gtk-2.0' '-I' '/home/dominik/bbbroot/usr/include/pango-1.0' '-I' '/home/dominik/bbbroot/usr/include/atk-1.0' '-I' '/home/dominik/bbbroot/usr/include/cairo' '-I' '/home/dominik/bbbroot/usr/include/gdk-pixbuf-2.0' '-I' '/home/dominik/bbbroot/usr/include/glib-2.0' '-I' '/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include' '-I' '/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/gtk-2.0/include' '-shared-libgcc' '-mfloat-abi=hard' '-mfpu=vfpv3-d16' '-mthumb' '-mtls-dialect=gnu'
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/cc1plus -quiet -v -I /home/dominik/bbbroot/usr/include/gtk-2.0 -I /home/dominik/bbbroot/usr/include/pango-1.0 -I /home/dominik/bbbroot/usr/include/atk-1.0 -I /home/dominik/bbbroot/usr/include/cairo -I /home/dominik/bbbroot/usr/include/gdk-pixbuf-2.0 -I /home/dominik/bbbroot/usr/include/glib-2.0 -I /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -imultiarch arm-linux-gnueabihf -isysroot /home/dominik/bbbroot -D_GNU_SOURCE simple.c -quiet -dumpbase simple.c -mtune=cortex-a8 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -mthumb -mtls-dialect=gnu -auxbase simple -g -Wall -version -fstack-protector -Wformat -Wformat-security -o /tmp/ccjGniT3.s
GNU C++ (Ubuntu/Linaro 4.8.2-16ubuntu4) version 4.8.2 (arm-linux-gnueabihf)
compiled by GNU C version 4.8.2, GMP version 5.1.3, MPFR version 3.1.2-p3, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/home/dominik/bbbroot/usr/arm-linux-gnueabihf/include/c++/4.8.2"
ignoring nonexistent directory "/home/dominik/bbbroot/usr/arm-linux-gnueabihf/include/c++/4.8.2/arm-linux-gnueabihf"
ignoring nonexistent directory "/home/dominik/bbbroot/usr/arm-linux-gnueabihf/include/c++/4.8.2/backward"
ignoring nonexistent directory "/home/dominik/bbbroot/usr/local/include/arm-linux-gnueabihf"
#include "..." search starts here:
#include <...> search starts here:
/home/dominik/bbbroot/usr/include/gtk-2.0
/home/dominik/bbbroot/usr/include/pango-1.0
/home/dominik/bbbroot/usr/include/atk-1.0
/home/dominik/bbbroot/usr/include/cairo
/home/dominik/bbbroot/usr/include/gdk-pixbuf-2.0
/home/dominik/bbbroot/usr/include/glib-2.0
/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include
/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/gtk-2.0/include
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/include
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/include-fixed
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/include
/home/dominik/bbbroot/usr/include/arm-linux-gnueabihf
/home/dominik/bbbroot/usr/include
End of search list.
GNU C++ (Ubuntu/Linaro 4.8.2-16ubuntu4) version 4.8.2 (arm-linux-gnueabihf)
compiled by GNU C version 4.8.2, GMP version 5.1.3, MPFR version 3.1.2-p3, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 5864e76821369f09a9f341580a4c0155
COLLECT_GCC_OPTIONS='-v' '-g' '-Wall' '-mtune=cortex-a8' '-march=armv7-a' '-o' 'simple' '-L/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf' '-I' '/home/dominik/bbbroot/usr/include/gtk-2.0' '-I' '/home/dominik/bbbroot/usr/include/pango-1.0' '-I' '/home/dominik/bbbroot/usr/include/atk-1.0' '-I' '/home/dominik/bbbroot/usr/include/cairo' '-I' '/home/dominik/bbbroot/usr/include/gdk-pixbuf-2.0' '-I' '/home/dominik/bbbroot/usr/include/glib-2.0' '-I' '/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include' '-I' '/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/gtk-2.0/include' '-shared-libgcc' '-mfloat-abi=hard' '-mfpu=vfpv3-d16' '-mthumb' '-mtls-dialect=gnu'
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/as -v -I /home/dominik/bbbroot/usr/include/gtk-2.0 -I /home/dominik/bbbroot/usr/include/pango-1.0 -I /home/dominik/bbbroot/usr/include/atk-1.0 -I /home/dominik/bbbroot/usr/include/cairo -I /home/dominik/bbbroot/usr/include/gdk-pixbuf-2.0 -I /home/dominik/bbbroot/usr/include/glib-2.0 -I /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -meabi=5 -o /tmp/cc4sA1i3.o /tmp/ccjGniT3.s
Die GNU-Assembler-Version 2.24 (arm-linux-gnueabihf) benutzt die BFD-Version (GNU Binutils for Ubuntu) 2.24
COMPILER_PATH=/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/:/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/:/usr/lib/gcc-cross/arm-linux-gnueabihf/:/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/:/usr/lib/gcc-cross/arm-linux-gnueabihf/:/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/
LIBRARY_PATH=/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/:/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/:/home/dominik/bbbroot/lib/arm-linux-gnueabihf/:/home/dominik/bbbroot/lib/../lib/:/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/:/home/dominik/bbbroot/usr/lib/../lib/:/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/:/home/dominik/bbbroot/lib/:/home/dominik/bbbroot/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-g' '-Wall' '-mtune=cortex-a8' '-march=armv7-a' '-o' 'simple' '-L/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf' '-I' '/home/dominik/bbbroot/usr/include/gtk-2.0' '-I' '/home/dominik/bbbroot/usr/include/pango-1.0' '-I' '/home/dominik/bbbroot/usr/include/atk-1.0' '-I' '/home/dominik/bbbroot/usr/include/cairo' '-I' '/home/dominik/bbbroot/usr/include/gdk-pixbuf-2.0' '-I' '/home/dominik/bbbroot/usr/include/glib-2.0' '-I' '/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include' '-I' '/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/gtk-2.0/include' '-shared-libgcc' '-mfloat-abi=hard' '-mfpu=vfpv3-d16' '-mthumb' '-mtls-dialect=gnu'
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/collect2 --sysroot=/home/dominik/bbbroot --build-id --eh-frame-hdr -dynamic-linker /lib/ld-linux-armhf.so.3 -X --hash-style=gnu --as-needed -m armelf_linux_eabi -z relro -o simple /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/crt1.o /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/crti.o /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtbegin.o -L/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf -L/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8 -L/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib -L/home/dominik/bbbroot/lib/arm-linux-gnueabihf -L/home/dominik/bbbroot/lib/../lib -L/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf -L/home/dominik/bbbroot/usr/lib/../lib -L/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib -L/home/dominik/bbbroot/lib -L/home/dominik/bbbroot/usr/lib -rpath-link=/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf -verbose -L/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf -lgtk-x11-2.0 /tmp/cc4sA1i3.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtend.o /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/crtn.o
GNU ld (GNU Binutils for Ubuntu) 2.24
Unterstützte Emulationen:
armelf_linux_eabi
armelfb_linux_eabi
using internal linker script:
==================================================
/* Script for -z combreloc: combine and sort reloc sections */
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
"elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(_start)
/tmp/cc4sA1i3.o: In Funktion `main':
SEARCH_DIR("=/usr/local/lib/arm-linux-gnueabihf"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib/arm-linux-gnueabihf"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib/arm-linux-gnueabihf"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("/usr/arm-linux-gnueabihf/lib");
/home/dominik/workspaces/Mars/Beaglebone/SysrootTest//simple.c:23: Nicht definierter Verweis auf `gtk_init'
collect2: error: ld returned 1 exit status
SECTIONS
make: *** [main] Fehler 1
{
/* Read-only sections, merged into text segment: */
PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + SIZEOF_HEADERS;
.interp : { *(.interp) }
.note.gnu.build-id : { *(.note.gnu.build-id) }
.hash : { *(.hash) }
.gnu.hash : { *(.gnu.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.dyn :
{
*(.rel.init)
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
*(.rel.fini)
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
*(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
*(.rel.ctors)
*(.rel.dtors)
*(.rel.got)
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
PROVIDE_HIDDEN (__rel_iplt_start = .);
*(.rel.iplt)
PROVIDE_HIDDEN (__rel_iplt_end = .);
}
.rela.dyn :
{
*(.rela.init)
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
*(.rela.fini)
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
*(.rela.ctors)
*(.rela.dtors)
*(.rela.got)
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
PROVIDE_HIDDEN (__rela_iplt_start = .);
*(.rela.iplt)
PROVIDE_HIDDEN (__rela_iplt_end = .);
}
.rel.plt :
{
*(.rel.plt)
}
.rela.plt :
{
*(.rela.plt)
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) }
.iplt : { *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
*(.text.exit .text.exit.*)
*(.text.startup .text.startup.*)
*(.text.hot .text.hot.*)
*(.text .stub .text.* .gnu.linkonce.t.*)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
}
.fini :
{
KEEP (*(SORT_NONE(.fini)))
}
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
.rodata1 : { *(.rodata1) }
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
PROVIDE_HIDDEN (__exidx_end = .);
.eh_frame_hdr : { *(.eh_frame_hdr) }
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table
.gcc_except_table.*) }
/* These sections are generated by the Sun/Oracle C++ compiler. */
.exception_ranges : ONLY_IF_RO { *(.exception_ranges
.exception_ranges*) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
. = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
/* Exception handling */
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
.exception_ranges : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
/* Thread Local Storage sections */
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
.preinit_array :
{
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP (*(.preinit_array))
PROVIDE_HIDDEN (__preinit_array_end = .);
}
.init_array :
{
PROVIDE_HIDDEN (__init_array_start = .);
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array ))
PROVIDE_HIDDEN (__init_array_end = .);
}
.fini_array :
{
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP (*(SORT(.fini_array.*)))
KEEP (*(.fini_array ))
PROVIDE_HIDDEN (__fini_array_end = .);
}
.ctors :
{
/* gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is
first. Because this is a wildcard, it
doesn't matter if the user does not
actually link against crtbegin.o; the
linker won't look for a file to match a
wildcard. The wildcard also means that it
doesn't matter which directory crtbegin.o
is in. */
KEEP (*crtbegin.o(.ctors))
KEEP (*crtbegin?.o(.ctors))
/* We don't want to include the .ctor section from
the crtend.o file until after the sorted ctors.
The .ctor section from the crtend file contains the
end of ctors marker and it must be last */
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
}
.dtors :
{
KEEP (*crtbegin.o(.dtors))
KEEP (*crtbegin?.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
}
.jcr : { KEEP (*(.jcr)) }
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) }
.dynamic : { *(.dynamic) }
. = DATA_SEGMENT_RELRO_END (0, .);
.got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
.data :
{
PROVIDE (__data_start = .);
*(.data .data.* .gnu.linkonce.d.*)
SORT(CONSTRUCTORS)
}
.data1 : { *(.data1) }
_edata = .; PROVIDE (edata = .);
. = .;
__bss_start = .;
__bss_start__ = .;
.bss :
{
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
*(COMMON)
/* Align here to ensure that the .bss section occupies space up to
_end. Align after .bss to ensure correct alignment even if the
.bss section disappears because there are no input sections.
FIXME: Why do we need it? When there is no .bss section, we don't
pad the .data section. */
. = ALIGN(. != 0 ? 32 / 8 : 1);
}
_bss_end__ = . ; __bss_end__ = . ;
. = ALIGN(32 / 8);
. = SEGMENT_START("ldata-segment", .);
. = ALIGN(32 / 8);
__end__ = . ;
_end = .; PROVIDE (end = .);
. = DATA_SEGMENT_END (.);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end ) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* DWARF 3 */
.debug_pubtypes 0 : { *(.debug_pubtypes) }
.debug_ranges 0 : { *(.debug_ranges) }
/* DWARF Extension. */
.debug_macro 0 : { *(.debug_macro) }
.gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
}
==================================================
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/crt1.o zu öffnen, war erfolgreich
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/crt1.o
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/crti.o zu öffnen, war erfolgreich
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/crti.o
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtbegin.o zu öffnen, war erfolgreich
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtbegin.o
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so zu öffnen, war erfolgreich
-lgtk-x11-2.0 (/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgtk-x11-2.0.so)
Der Versuch, /tmp/cc4sA1i3.o zu öffnen, war erfolgreich
/tmp/cc4sA1i3.o
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libstdc++.so zu öffnen, ist fehlgeschlagen
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libstdc++.a zu öffnen, ist fehlgeschlagen
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libstdc++.so zu öffnen, war erfolgreich
-lstdc++ (/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libstdc++.so)
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libm.so zu öffnen, war erfolgreich
-lm (/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libm.so)
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc_s.so zu öffnen, ist fehlgeschlagen
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc_s.a zu öffnen, ist fehlgeschlagen
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc_s.so zu öffnen, war erfolgreich
Skriptdatei /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc_s.so geöffnet
Skriptdatei /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc_s.so geöffnet
Der Versuch, libgcc_s.so.1 zu öffnen, ist fehlgeschlagen
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc_s.so.1 zu öffnen, ist fehlgeschlagen
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc_s.so.1 zu öffnen, war erfolgreich
libgcc_s.so.1 (/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc_s.so.1)
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc.so zu öffnen, ist fehlgeschlagen
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc.a zu öffnen, ist fehlgeschlagen
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc.so zu öffnen, ist fehlgeschlagen
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc.a zu öffnen, war erfolgreich
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc.so zu öffnen, ist fehlgeschlagen
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc.a zu öffnen, ist fehlgeschlagen
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc.so zu öffnen, ist fehlgeschlagen
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc.a zu öffnen, war erfolgreich
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libc.so zu öffnen, war erfolgreich
Skriptdatei /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libc.so geöffnet
Skriptdatei /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libc.so geöffnet
Der Versuch, /home/dominik/bbbroot/lib/arm-linux-gnueabihf/libc.so.6 zu öffnen, war erfolgreich
/lib/arm-linux-gnueabihf/libc.so.6 (/home/dominik/bbbroot/lib/arm-linux-gnueabihf/libc.so.6)
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libc_nonshared.a zu öffnen, war erfolgreich
(/home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libc_nonshared.a)elf-init.oS
Der Versuch, /home/dominik/bbbroot/lib/arm-linux-gnueabihf/ld-linux-armhf.so.3 zu öffnen, war erfolgreich
/lib/arm-linux-gnueabihf/ld-linux-armhf.so.3 (/home/dominik/bbbroot/lib/arm-linux-gnueabihf/ld-linux-armhf.so.3)
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc_s.so zu öffnen, ist fehlgeschlagen
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc_s.a zu öffnen, ist fehlgeschlagen
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc_s.so zu öffnen, war erfolgreich
Skriptdatei /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc_s.so geöffnet
Skriptdatei /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc_s.so geöffnet
Der Versuch, libgcc_s.so.1 zu öffnen, ist fehlgeschlagen
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc_s.so.1 zu öffnen, ist fehlgeschlagen
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc_s.so.1 zu öffnen, war erfolgreich
libgcc_s.so.1 (/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc_s.so.1)
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc.so zu öffnen, ist fehlgeschlagen
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc.a zu öffnen, ist fehlgeschlagen
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc.so zu öffnen, ist fehlgeschlagen
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc.a zu öffnen, war erfolgreich
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc.so zu öffnen, ist fehlgeschlagen
Der Versuch, /home/dominik/bbbroot/usr/lib/arm-linux-gnueabihf/libgcc.a zu öffnen, ist fehlgeschlagen
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc.so zu öffnen, ist fehlgeschlagen
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/libgcc.a zu öffnen, war erfolgreich
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtend.o zu öffnen, war erfolgreich
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtend.o
Der Versuch, /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/crtn.o zu öffnen, war erfolgreich
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/crtn.o
ld-linux-armhf.so.3 needed by /home/dominik/bbbroot/lib/arm-linux-gnueabihf/libc.so.6
found ld-linux-armhf.so.3 at /home/dominik/bbbroot/lib/arm-linux-gnueabihf/ld-linux-armhf.so.3
16:01:40 Build Finished (took 2s.415ms)
我做错了什么?