Заметив, что gcc -shared
создает исполняемый файл, я просто получил странную идею, чтобы проверить, что происходит, когда я пытаюсь запустить его... ну, результат был segfault для моей собственной библиотеки. Поэтому, будучи любопытным, я попытался "запустить" glibc (/lib/x86_64-linux-gnu/libc.so.6
в моей системе). Конечно, это не сбой, но предоставил мне некоторый результат:
GNU C Library (Debian GLIBC 2.19-18) stable release version 2.19, by Roland McGrath et al.
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.8.4.
Compiled on a Linux 3.16.7 system on 2015-04-14.
Available extensions:
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
Native POSIX Threads Library by Ulrich Drepper et al
BIND-8.2.3-T5B
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.debian.org/Bugs/>.
Итак, мой вопрос: что это за магия? Я не могу просто определить символ main
в библиотеке - или я могу?