我想知道这是如何工作的,创建一个库并预加载它,以便程序可以使用它而不是 include 语句中的那个。
这就是我正在做的事情,到目前为止还没有工作。
//shared.cpp
int rand(){
return 33;
}
//prograndom.cpp
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
srand(time(NULL));
int i = 10;
while(i--) printf("%d\n", rand()%100);
return 0;
}
然后在终端:
$ gcc -shared -fPIC shared.cpp -o libshared.so
$ gcc prograndom.cpp -o prograndom
$ export LD_PRELOAD=/home/bob/desarrollo/libshared.so
最后
$ LD_PRELOAD=/home/bob/desarrollo/libshared.so ./prograndom
不打印 33,只是随机数...