когда я делаю [shp2osm], он показывает ошибку, ld возвращает 1 статус выхода

Я хочу преобразовать shpfile в файл osm, поэтому я запущу 【osm2shp】, но когда я это сделаю, появится сообщение об ошибке:

osm.c:(.text+0x82c): undefined reference to `xmlAddChild'
osm.c:(.text+0x869): undefined reference to `xmlAddChild'
osm.c:(.text+0x95c): undefined reference to `xmlAddChild'
osm.o:osm.c:(.text+0x992): more undefined references to `xmlAddChild' follow
osm.o: In function `createXmlDoc':
osm.c:(.text+0xafc): undefined reference to `xmlNewDoc'
osm.c:(.text+0xb0f): undefined reference to `xmlNewNode'
osm.c:(.text+0xb31): undefined reference to `xmlNewProp'
osm.c:(.text+0xb44): undefined reference to `xmlDocSetRootElement'
shp2osm.o: In function `main':
shp2osm.c:(.text+0x40d): undefined reference to `xmlSaveFormatFileEnc'
shp2osm.c:(.text+0x419): undefined reference to `xmlFreeDoc'
collect2: error: ld returned 1 exit status
make: *** [shp2osm] Error 1

Я предполагаю, что он подключает libxml2, но я не знаю, как решить эту проблему.

вот подробно:

jin@ubuntu:~/Desktop/osmutils-master$ make
gcc -c -Wall `xml2-config --cflags --libs` -lproj transform.c
gcc -c -Wall `xml2-config --cflags --libs` -lproj ruleset.c
gcc -c -Wall `xml2-config --cflags --libs` -lproj osm.c
osm.c: In function ‘tagElement’:
osm.c:80:8: warning: variable ‘key’ set but not used [-Wunused-but-set-variable]
  char *key;
        ^
gcc -c -Wall `xml2-config --cflags --libs` -lproj shape.c
gcc -c -Wall `xml2-config --cflags --libs` -lproj shp2osm.c
gcc -Wall `xml2-config --cflags --libs` -lproj -o shp2osm dbfopen.o shpopen.o keyvals.o transform.o ruleset.o osm.o shape.o shp2osm.o
transform.o: In function `sridIsValid':
transform.c:(.text+0x4c): undefined reference to `pj_init_plus'
transform.c:(.text+0x69): undefined reference to `pj_init_plus'
transform.o: In function `transformPoint':
transform.c:(.text+0xe7): undefined reference to `pj_transform'
osm.o: In function `tagElement':
osm.c:(.text+0x285): undefined reference to `xmlNewNode'
osm.c:(.text+0x2b1): undefined reference to `xmlNewProp'
osm.c:(.text+0x2d9): undefined reference to `xmlNewProp'
osm.o: In function `nodeElement':
osm.c:(.text+0x33b): undefined reference to `xmlNewNode'
osm.c:(.text+0x365): undefined reference to `xmlNewProp'
osm.c:(.text+0x393): undefined reference to `xmlNewProp'
osm.c:(.text+0x3c1): undefined reference to `xmlNewProp'
osm.o: In function `nodeRef':
osm.c:(.text+0x3de): undefined reference to `xmlNewNode'
osm.c:(.text+0x408): undefined reference to `xmlNewProp'
osm.o: In function `wayElement':
osm.c:(.text+0x428): undefined reference to `xmlNewNode'
osm.c:(.text+0x452): undefined reference to `xmlNewProp'
osm.o: In function `buildNodes':
osm.c:(.text+0x606): undefined reference to `xmlAddChild'
osm.c:(.text+0x63c): undefined reference to `xmlAddChild'
osm.o: In function `parseLine':
osm.c:(.text+0x82c): undefined reference to `xmlAddChild'
osm.c:(.text+0x869): undefined reference to `xmlAddChild'
osm.c:(.text+0x95c): undefined reference to `xmlAddChild'
osm.o:osm.c:(.text+0x992): more undefined references to `xmlAddChild' follow
osm.o: In function `createXmlDoc':
osm.c:(.text+0xafc): undefined reference to `xmlNewDoc'
osm.c:(.text+0xb0f): undefined reference to `xmlNewNode'
osm.c:(.text+0xb31): undefined reference to `xmlNewProp'
osm.c:(.text+0xb44): undefined reference to `xmlDocSetRootElement'
shp2osm.o: In function `main':
shp2osm.c:(.text+0x40d): undefined reference to `xmlSaveFormatFileEnc'
shp2osm.c:(.text+0x419): undefined reference to `xmlFreeDoc'
collect2: error: ld returned 1 exit status
make: *** [shp2osm] Error 1

person PengJ    schedule 18.11.2016    source источник
comment
Похоже, вы неправильно связываетесь с libxml2. Более подробный журнал сборки был бы полезен для выявления проблемы.   -  person scai    schedule 19.11.2016
comment
хорошо, я уже опубликовал подробности, я думаю, что мои proj4 и libxml2 не правильно связаны, но я не знаю, как это решить   -  person PengJ    schedule 19.11.2016
comment
Что возвращает xml2-config --cflags --libs?   -  person scai    schedule 19.11.2016
comment
-I/usr/local/include/libxml2 -L/usr/local/lib -lxml2 -lz -lm -ldl   -  person PengJ    schedule 19.11.2016
comment
Звучит нормально, я думаю. Извините, я понятия не имею, в чем проблема в вашем случае. Возможно, установлены две конфликтующие версии libxml2 или что-то не так с настройками компоновщика.   -  person scai    schedule 19.11.2016


Ответы (1)


По сути, это дубликат Ошибка при связывании libxml2. Порядок аргументов в команде ссылки неверен. Библиотеки должны идти после объектных файлов. Вам следует создать задачу, вероятно, здесь, на GitHub.

person nwellnhof    schedule 19.11.2016