我正在尝试编译在GNU readline中利用以下代码的C代码。#include <readline/readline.h>;#include <readline/history.h>;我尝试将 更改为“” ,并使用和不使用 -readline 选项进行编译。似乎没有任何作用。在 gcc 下不使用 -lreadline 进行编译时,编译时将生成以下内容(详细):Reading specs from /software/gcc-3.4.6-0/pkg/lib/gcc/i386-unknown-freebsd6.1/3.4.6/specsConfigured with: ../gcc-3.4.6/configure --prefix=/software/gcc-3.4.6-0/pkg --disable-dependency-tracking --localstatedir=/var --disable-nls --program-suffix=34 --enable-shared --enable-version-specific-runtime-libsThread model: posixgcc version 3.4.6 /software/gcc-3.4.6-0/pkg/libexec/gcc/i386-unknown-freebsd6.1/3.4.6/cc1 -quiet -v myshell.c -quiet -dumpbase myshell.c -auxbase myshell -version -o /var/tmp//ccVSq3jQ.signoring nonexistent directory "/software/gcc-3.4.6-0/pkg/lib/gcc/i386-unknown-freebsd6.1/3.4.6/../../../../i386-unknown-freebsd6.1/include"#include "..." search starts here:#include <...> search starts here: /usr/local/include /software/gcc-3.4.6-0/pkg/include /software/gcc-3.4.6-0/pkg/lib/gcc/i386-unknown-freebsd6.1/3.4.6/include /usr/includeEnd of search list.GNU C version 3.4.6 (i386-unknown-freebsd6.1) compiled by GNU C version 3.4.6.GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=129976 as -o /var/tmp//ccl1Jaqk.o /var/tmp//ccVSq3jQ.s /software/gcc-3.4.6-0/pkg/libexec/gcc/i386-unknown-freebsd6.1/3.4.6/collect2 -V -dynamic-linker /libexec/ld-elf.so.1 -L/software/gcc-3.4.6-0/pkg/lib/gcc/i386-unknown-freebsd6.1 -o a /usr/lib/crt1.o /usr/lib/crti.o /software/gcc-3.4.6-0/pkg/lib/gcc/i386-unknown-freebsd6.1/3.4.6/crtbegin.o -L/software/gcc-3.4.6-0/pkg/lib/gcc/i386-unknown-freebsd6.1/3.4.6 -L/software/gcc-3.4.6-0/pkg/lib/gcc/i386-unknown-freebsd6.1/3.4.6/../../.. /var/tmp//ccl1Jaqk.o -lreadline -lgcc -lgcc_eh -lc -lgcc -lgcc_eh /software/gcc-3.4.6-0/pkg/lib/gcc/i386-unknown-freebsd6.1/3.4.6/crtend.o /usr/lib/crtn.o/usr/bin/ld: cannot find -lreadlineGNU ld version 2.15 [FreeBSD] 2004-05-23 Supported emulations: elf_i386_fbsdcollect2: ld returned 1 exit status这是不使用 -lreadline 选项进行编译时的输出。/var/tmp//ccNnucSC.o(.text+0x4f): In function `main':: undefined reference to `readline'collect2: ld returned 1 exit status到目前为止,我一直无法解决此错误。我的代码或调用gcc时缺少什么? (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 在UNIX下进行编译时,我发现以下是正确引用 GNU readline 库所必需的:gcc code.c -L/usr/local/lib -I/usr/local/include -lreadline这样可以确保编译器在编译和链接期间找到阅读行目录和文件。 (adsbygoogle = window.adsbygoogle || []).push({});