UCCntu 11上GCC的链接问题

时间:2012-03-18 18:06:18

标签: c gcc ubuntu-11.10

我正在从Ubuntu 10.04迁移到Ubuntu 11.10(oneiric),但是当我尝试编译一些在Ubuntu 10.04上工作正常的应用程序时我没有任何变化。

我安装了sqlite3和unac库,与我在Ubuntu 10.4上使用的库相同。我使用以下命令安装:

sudo su
apt-get install libunac1-dev
apt-get install sqlite3
apt-get install libsqlite3-dev

但是我跑的时候:gcc -Wall -lsqlite3 -lunac -Werror -O2 -o ILD.out ILD.c

我收到以下错误:

/tmp/cceRDsMZ.o: In function `removediacritics':
ILD.c:(.text+0x1ae): undefined reference to `unac_string'
/tmp/cceRDsMZ.o: In function `main':
ILD.c:(.text.startup+0x1a): undefined reference to `sqlite3_open'
ILD.c:(.text.startup+0x6c): undefined reference to `sqlite3_prepare_v2'
ILD.c:(.text.startup+0x80): undefined reference to `sqlite3_step'
ILD.c:(.text.startup+0x98): undefined reference to `sqlite3_column_text'
ILD.c:(.text.startup+0xb0): undefined reference to `sqlite3_step'
ILD.c:(.text.startup+0xc1): undefined reference to `sqlite3_finalize'
ILD.c:(.text.startup+0xcd): undefined reference to `sqlite3_close'
ILD.c:(.text.startup+0x10c): undefined reference to `sqlite3_close'
ILD.c:(.text.startup+0x120): undefined reference to `sqlite3_errmsg'
ILD.c:(.text.startup+0x144): undefined reference to `sqlite3_close'
collect2: ld returned 1 exit status

我的GCC版本:gcc 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)

我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:7)

始终在c或文件后传递库选项。

您之前不需要的事实是非标准的错误功能。