gpt4 book ai didi

使用 -static 编译 C 程序时找不到共享库

转载 作者:行者123 更新时间:2023-11-30 14:26:48 25 4
gpt4 key购买 nike

演示.c

#include<stdio.h>

void shared_call()
{

printf("fun call \r\n");

}

demo_main.c

#include<stdio.h>
int main()
{

shared_call()

}
gcc -shared -fpic -o libdemo.so demo.c

gcc demo_main.c -L. -ldemo

这可以正确编译,但是当我尝试这样做时:

gcc -static  demo_main.c -L. -ldemo

它给了我以下错误:

/usr/bin/ld: cannot find -ldemo
collect2: ld returned 1 exit status

为什么当我使用 -static 编译时会出现此错误?

最佳答案

您需要一个用于静态链接的静态库,其名称为libdemo.a。让它像这样:

gcc -c -o demo.o demo.c
ar rcs libdemo.a demo.o

关于使用 -static 编译 C 程序时找不到共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8534291/

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