Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 更改libmysqlclient和libxml2的链接顺序会导致libxml2出错_C++_Mysql_C_Linux_Libxml2 - Fatal编程技术网

C++ 更改libmysqlclient和libxml2的链接顺序会导致libxml2出错

C++ 更改libmysqlclient和libxml2的链接顺序会导致libxml2出错,c++,mysql,c,linux,libxml2,C++,Mysql,C,Linux,Libxml2,我正在linux平台上用C构建一个应用程序。在我的程序中,我使用API xmlReadFile使用libxml2读取XML文档 File.xml:1: parser error : Document is empty ^ File.xml:1: parser error : Start tag expected, '<' not found ^ 我将程序链接到makefile的以下行: $(CC) -m32 -g -o app.out -Wl,-Bstatic $(other_li

我正在linux平台上用C构建一个应用程序。在我的程序中,我使用API xmlReadFile使用libxml2读取XML文档

File.xml:1: parser error : Document is empty

^
File.xml:1: parser error : Start tag expected, '<' not found

^
我将程序链接到makefile的以下行:

 $(CC) -m32 -g -o app.out -Wl,-Bstatic $(other_libs) -lmysqlclient -lxml2 -Wl,-Bdynamic -lpthread -lm -lrt -lz -lbz2 $(extra_ldflags)
通过这些设置,文件中的所有内容都可以正常工作。对xmlReadFile的API调用工作正常

如果将-lmysqlclient移到-lxml2之后,程序将在xmlReadFile中生成以下错误

File.xml:1: parser error : Document is empty

^
File.xml:1: parser error : Start tag expected, '<' not found

^
如何解决上述错误


我提前感谢您的帮助。

您确定您的XML文档有效吗?是的。这是有效的。在我更改链接设置之前,程序会完全读取文档。XML文件以ascii字符集编码。我在xmlReadFile API中指定编码。我尝试了其他编码,但我得到了相同的错误。好的,对不起,我帮不了你。我对链接几乎一无所知…:谢谢你看了这篇文章。这对我来说太奇怪了,我猜你的程序调用未定义的行为有缺陷?;它是否有效取决于链接过程的细节。我会尝试在没有mysqlclient库的情况下启动,并通过valgrind等运行生成的libxml2-only程序。