Я хочу использовать одну программу как общую библиотеку для другой программы.Неопределенная ссылка при использовании разделяемой библиотеки
Я начал следующим образом: У меня есть приложение, которое я скомпилированные с помощью:
/usr/bin/g++ -I/usr/include/libxml2 -Xlinker -zmuldefs -fPIC -c a.cpp
/usr/bin/g++ -I/usr/include/libxml2 -Xlinker -zmuldefs -fPIC -c b.cpp
/usr/bin/g++ -I/usr/include/libxml2 -Xlinker -zmuldefs -fPIC -c c.cpp
Затем я создал общую библиотеку объектов из объектов, которые я получаю из этого файла с помощью следующей команды:
g++ -fPIC -Xlinker -zmuldefs -shared -o libabc.so a.o b.o c.o
После этого я получаю libabc.so файл, который я копирую в
sudo cp libabc.so /usr/local/lib/libabc.so
Теперь, когда я компилирую мое приложение Orignal, который будет использовать эту вновь созданную библиотеку libabc.so с помощью этой команды:
/usr/local/lib/libabd.so: undefined reference to `xmlXPathNewContext'
я получаю ошибки для всех функций, которые я использовал из включенного библиотеки libxml2 в первом приложение и функция, которая имеет эту неопределенную ссылку, на самом деле является библиотекой, которую я включаю в первую программу, я имею в виду, что я ее протестировал. Так любезно, что я направляю меня туда, где мне нужны исправления.
Я пробовал это, но он все еще говорит, что '/usr/include/lib/libabc.so: неопределенная ссылка на« xmlXPathNewContext »' – hasanalikhattak