[英]Cannot find shared library while compiling C program with -static
#include<stdio.h>
void shared_call()
{
printf("fun call \r\n");
}
#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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.