2014-10-18 5 views
0

У меня есть очень простая программа (simple.c):Сценарий компоновщика не работает?

#include <stdio.h> 
int main(){ 
    int a = 4; 
    return 0; 
} 

Я пытаюсь использовать следующий скрипт компоновщика (MEMORY):

MEMORY 
{ 
m_text : ORIGIN = 0x0000000000400000, LENGTH = 0x0001FBF0 
m_data : ORIGIN = 0x0000000000600000, LENGTH = 0x00004000 
} 

SECTIONS 
{ 
    .text : 
    { 
    *(.text) /* Program Code */ 
} > m_text 

    .data : { *(.data) } > m_data 
    .bss : { *(.bss) } > m_data 
    } 

Я использую следующие команды для компиляции и ссылка:

gcc -c simple.c

ld -T MEMORY -o simple -dynamic-linker /lib64/ld-linux-x86-64.so.2 /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/x86_64-linux-gnu/crtn.o simple.o

Я получаю следующее сообщение об ошибке:

ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 0 has invalid symbol index 11 
. 
. 
. 
ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_line): relocation 0 has invalid symbol index 2 
/usr/lib/x86_64-linux-gnu/crt1.o: In function `_start': 
(.text+0x12): undefined reference to `__libc_csu_fini' 
/usr/lib/x86_64-linux-gnu/crt1.o: In function `_start': 
(.text+0x19): undefined reference to `__libc_csu_init' 
/usr/lib/x86_64-linux-gnu/crt1.o: In function `_start': 
(.text+0x25): undefined reference to `__libc_start_main' 
simple.o: In function `main': 
simple.c:(.text+0xa): undefined reference to `puts' 

Если я пытаюсь использовать:

ld -T MEMORY4 -o simple -dynamic-linker /lib64/ld-linux-x86-64.so.2 /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/x86_64-linux-gnu/crtn.o simple.o -lc

Это дает ошибку

ld: cannot find -lc

Любые предложения? Все, что я хочу сделать, это поместить мой simple.c в другую область памяти, а затем по умолчанию.

+0

Запустите «gcc -Wl, -verbnose» для получения дополнительной информации – Sasi

ответ

0

Существует несколько проблем, но главная из них связана с вашим скриптом компоновщика, не имеет .debug_info или .debug_line.

Смежные вопросы