$ cat main.c
void f1(void);
void f2(void);
int main()
{
f1();
f2();
}
$ cat a.c
#include <stdio.h>
void f1(void)
{
printf("a.f1\n");
}
$ cat b.c
#include <stdio.h>
void f1(void)
{
printf("b.f1\n");
}
void f2(void)
{
printf("b.f2\n");
}
$ gcc a.c -shared -fPIC -o liba.so
$ gcc b.c -shared -fPIC -o libb.so
$ gcc main.c -o main -L. -la -lb
$ LD_LIBRARY_PATH=. ./main
a.f1
b.f2
$ gcc main.c -o main -L. -lb -la
$ LD_LIBRARY_PATH=. ./main
b.f1
b.f2
@CAMOKPYT: как мне нравятся такие безапеляционные утверждения, вы бы знали. Почему быстрее? Когда быстрее?