ld- все статьи тега ➜ страница 0


Почему опция '-- oformat binary ' компоновщика gnu помещает `.сегмент данных на 0x0200000

Я писал какой-то" свободный " код для реального режима i386 и наткнулся на некоторые странные ошибки, когда PXE netbooting мой код: PXE-E79: NBP is too big to fit in free base memory PXE-M0F: Exiting Intel Boot Agent. После долгой возни с моими двоичными файлами я выделил его как имеющий любые данные или код после .data Маркер сегмента. После hexdumping я обнаружил, что ld переместил инструкции полностью в 0x0200000 из всех мест. В данный момент я генерирую свою плоскую корзину с: ld ...

Как скомпилировать 32-битный hello world на alpine?

Задан простой код hello world: #include <stdio.h> int main(void){ puts("hello"); return 0; } На 64-битной установке alpine linux я попытался скомпилировать ее как 64-битную и как 32-битную. Первый работает нормально, но во втором отсутствуют 32-битные библиотеки: ~ # gcc -Wall hello.c ~ # gcc -Wall -m32 hello.c /usr/lib/gcc/x86_64-alpine-linux-musl/5.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-alpine-linux-musl/5.3.0/../../../libss ...

Я не понимаю-Wl, - rpath-Wl,

для удобства я добавил соответствующие страницы ниже. мое (mis)понимание сначала: если мне нужно разделить параметры с ,, это означает, что второй -Wl это не другой вариант, потому что он приходит перед , что означает, что это аргумент для . Я не понимаю, как -rpath может быть ...

объедините два скомпилированных GCC.o объектные файлы в третий.o файл

как объединить два скомпилированных GCC .o объектные файлы в третий .o файл? $ gcc -c a.c -o a.o $ gcc -c b.c -o b.o $ ??? a.o b.o -o c.o $ gcc c.o other.o -o executable если у вас есть доступ к исходному файлы -combine флаг GCC объединит исходные файлы перед компиляцией: $ gcc -c -combine a.c b.c -o c.o однако это работает только для исходных файлов, и GCC не принимает .o файлы в качестве входных данных для этой команды. нормально, соединяющей .o файлы не работают должным образом, так ...