簡體   English   中英

使用-static編譯C程序時找不到共享庫

[英]Cannot find shared library while compiling C program with -static

demo.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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM