0
我想給編譯一個.so文件libfoo.so
源。這個庫中唯一的一個函數只返回一個數字(是的,我知道,先進的東西)。頭文件當量(我得到了兩個,但我只應該使用的.so)被命名爲foo.h
,並且功能被命名爲int foo()
。如何使用共享庫編譯的文件?
我的源文件是main.c
:
#include <stdio.h>
#include "foo.h"
int main()
{
int x = foo();
printf("%d", x);
return 0;
}
現在,試圖編譯我有以下命令時:
gcc -Wall -fPIC -c main.c -o main.o
gcc -Wall -fPIC main.o -o main -lfoo -L.
第一個命令無法創建目標文件,輸出以下錯誤:
fatal error: foo.h: No such file or directory
我使用的是Ubuntu 16.04。
我也曾嘗試導出當前位置到LD_LIBRARY_PATH,因爲我已經看到了建議上一些其他的答案。
export LD_LBIRARY_PATH=$LD_LIBRARY_PATH:machine/Desktop/lib_test
凡'foo.h'定位和你在做什麼要告訴你的編譯器在哪裏找呢? – Biffen