我正在为我的一个C项目使用HTParse.c模块。但是在使用
进行编译时gcc -o project project.c -lpthread
我从头文件中收到以下编译器错误:
In file included from Gserve.c:12:0:
/usr/local/include/w3c-libwww/HTParse.h:117:8: error: unknown type name ‘BOOL’
extern BOOL HTURL_isAbsolute (const char * url);
^
/usr/local/include/w3c-libwww/HTParse.h:192:8: error: unknown type name ‘BOOL’
extern BOOL HTCleanTelnetString (char * str);
^
我已阅读过包含stdbool.h和C99,并且C90不支持布尔数据类型。即使包含此标题后,错误仍然存在。我已按如下方式包含这些标题:
#include<stdbool.h>
#include<w3c-libwww/HTParse.h>
在安装库时可能出现问题吗?在制作时我没有看到任何可疑的内容,但是在'sudo make install'结束时我注意到了一些错误......
collect2: error: ld returned 1 exit status
Makefile:660: recipe for target 'libapp_2' failed
make[2]: *** [libapp_2] Error 1
make[2]: Leaving directory '/usr/local/src/w3c-libwww- 5.4.0/Library/Examples'
Makefile:174: recipe for target 'install-recursive' failed
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory '/usr/local/src/w3c-libwww-5.4.0/Library'
Makefile:263: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
我正在使用 Ubuntu 15.10。
你们有什么想法解决这个问题吗?
非常感谢!
答案 0 :(得分:1)
此编译器错误的原因是w3c-libwww
定义了BOOL
在标题wwwsys.h
中,您不是#include
或其中任何一个
已经w3c-libwww
的其他#include
标头。图书馆
API样板文件应由:
#include <w3c-libwww/WWWLib.h>
之前的事情。通过提供的方式查看提供的示例
the online documentation或包中的Library/Examples
文件夹。
但是,更正此错误将无法进行编译和链接 由于您没有成功构建,因此库中的程序 并安装库。
您从sudo make install
注意到的失败意味着您没有
安装了库。但是有问题的错误:
collect2: error: ld returned 1 exit status
Makefile:660: recipe for target 'libapp_2' failed
不是将库及其标头安装到它们的错误 目标目录:它表示库的链接失败。
因此, make install
已尝试make
图书馆,因为只要图书馆有图书馆,它就会一直这样做
尚未构建,make
失败,因为库无法链接。
当我尝试构建the package时,
在Ubuntu 15.10上,./configure
成功但make
失败了:
gcc -g -O2 -Wall -o .libs/libapp_2 libapp_2.o ../src/.libs/libwwwinit.so ../src/.libs/libwwwapp.so ../../Library/src/.libs/libwwwxml.so ../../modules/expat/xmlparse/.libs/libxmlparse.so ../../modules/expat/xmltok/.libs/libxmltok.so ../src/.libs/libwwwhtml.so ../src/.libs/libwwwtelnet.so ../src/.libs/libwwwnews.so ../src/.libs/libwwwhttp.so ../src/.libs/libwwwmime.so ../src/.libs/libwwwgopher.so ../src/.libs/libwwwftp.so ../src/.libs/libwwwdir.so ../src/.libs/libwwwcache.so ../src/.libs/libwwwstream.so ../src/.libs/libwwwfile.so ../src/.libs/libwwwmux.so ../src/.libs/libwwwtrans.so ../src/.libs/libwwwcore.so ../src/.libs/libwwwutils.so -lm ../../modules/md5/.libs/libmd5.so -ldl -Wl,--rpath -Wl,/home/imk/develop/w3c/lib
../src/.libs/libwwwfile.so: undefined reference to `HTDir_addElement'
../src/.libs/libwwwfile.so: undefined reference to `HTDir_free'
../src/.libs/libwwwfile.so: undefined reference to `HTDir_new'
collect2: error: ld returned 1 exit status
Makefile:660: recipe for target 'libapp_2' failed
毫无疑问,这也是你所看到的。你必须考虑到联系失败 您正在尝试构建的库或可执行文件,而不仅仅是&#34;可疑的&#34;但完全是致命的。 在您链接之前,您没有库。
底线:这个(14年)包在Ubuntu 15.10上打破。没有 似乎是一个众所周知的解决方案。我建议你减少损失。