【发布时间】:2012-06-05 13:00:58
【问题描述】:
以下是我如何使用共享库生成可执行文件的步骤。
-
我有三个文件:
文件 libhello.c
/* hello.c - demonstrate library use. */ #include <stdio.h> void hello(void) { printf("Hello, library world./n"); }文件 libhello.h
/* hello.h - demonstrate library use. */ void hello(void);文件 main.c
/* main.c -- demonstrate direct use of the "hello" routine */ #include "hello.h" int main(void) { hello(); return 0; } -
我使用下面的命令来生成共享库。
gcc -g -Wall -fPIC -c hello.c -o hello.o gcc -shared -W,soname,-libhello.so.0 -o libhello.so.0.0.0 hello.o -
最后,我将库路径添加到
LD_LIBRARY_PATH变量中,并尝试使用共享库创建可执行文件。export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ln -s libhello.so.0.0.0 libhello.so.0 gcc -g -Wall -c main.c -o main.o -I. gcc -o main main.o -lhello -L.
但是,在最后一步,有一个错误:找不到-lhello。那么,我哪里错了?
谢谢。
【问题讨论】:
标签: c makefile shared-libraries