gpt4 book ai didi

linux - 我如何编译此代码以在 Linux 上使用 LD_PRELOAD?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:01:48 25 4
gpt4 key购买 nike

如何编译以下代码以使其与 LD​​_PRELOAD 一起工作?。我设法用'gcc -m32 -shared code.c'编译它没有错误,但是当我打开我试图将代码“注入(inject)”的程序时,它说: '符号查找错误:./fps.so: undefined symbol: clock_gettime'

#include<unistd.h>
#include<time.h>
#define BUSY_WAIT 3000
/* We use clock_gettime because it's better than gettimeofday */

unsigned long long int fetch_clock()
{
struct timespec ts;
clock_gettime(CLOCK_REALTIME, &ts);
return (unsigned long long int)ts.tv_nsec + 1000000*ts.tv_sec;
}

int high_pres_usleep_untill(unsigned long long int end)
{
unsigned long long int busywait, start;
int sleep, delay;

start = fetch_clock();
delay = end - start;

sleep = (delay / BUSY_WAIT) - 1;
if(sleep > 0)
if(usleep(sleep*BUSY_WAIT))
return -1;
while(fetch_clock() < end)
;

return 0;
}

最佳答案

您必须将共享库与 librt 链接才能使用 clock_gettime。

gcc -m32 -shared code.c -lrt

关于linux - 我如何编译此代码以在 Linux 上使用 LD_PRELOAD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1485001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com