编译OCILIB OCI包装库的问题

我正在尝试在ocilib3.8.1/demo编译ocilib3.8.1/demo 。 在成功安装了ocilib库之后,我在下面编译了demo source conn.c:

 #include "ocilib.h" int main(void) { OCI_Connection *cn; if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT)) return EXIT_FAILURE; cn = OCI_ConnectionCreate("db", "usr", "pwd", OCI_SESSION_DEFAULT); printf("Server major version : %i\n", OCI_GetServerMajorVersion(cn)); printf("Server minor version : %i\n", OCI_GetServerMinorVersion(cn)); printf("Server revision version : %i\n\n", OCI_GetServerRevisionVersion(cn)); printf("Connection version : %i\n\n", OCI_GetVersionConnection(cn)); OCI_Cleanup(); return EXIT_SUCCESS; } 

使用gcc编译:

 $gcc -Wall conn.c -o conn.o -I/usr/local/include \ -DOCI_IMPORT_LINKAGE -DOCI_CHARSET_ANSI 

错误:

 $ gcc -Wall conn.c -o conn.o -I/usr/local/include \ -DOCI_IMPORT_LINKAGE -DOCI_CHARSET_ANSI /tmp/ccMgFQri.o: In function `main': conn.c:(.text+0x26): undefined reference to `OCI_Initialize' conn.c:(.text+0x4f): undefined reference to `OCI_ConnectionCreate' conn.c:(.text+0x63): undefined reference to `OCI_GetServerMajorVersion' conn.c:(.text+0x82): undefined reference to `OCI_GetServerMinorVersion' conn.c:(.text+0xa1): undefined reference to `OCI_GetServerRevisionVersion' conn.c:(.text+0xc0): undefined reference to `OCI_GetVersionConnection' conn.c:(.text+0xd6): undefined reference to `OCI_Cleanup' collect2: ld returned 1 exit status 

我使用的是redhat el5,gcc版本3.4.6 20060404(Red Hat 3.4.6-4),即时客户端版本10.2.0.5.0。

感谢帮助。 我是linux编程的新手..

你必须链接到ocilib!

将“-locilib”添加到命令行:)