Я хочу использовать одну программу в качестве общей библиотеки для другой программы.
Я начал следующим образом: у меня есть приложение, которое я скомпилировал, используя:
/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
Теперь, когда я компилирую свое оригинальное приложение, которое будет использовать эту недавно созданную библиотеку libabc.so, используя эту команду:
/usr/local/lib/libabd.so: undefined reference to `xmlXPathNewContext'
Я получаю ошибки для всех функций, которые я использовал из включенной библиотеки libxml2 в первом приложении, и функция, которая имеет эту неопределенную ссылку, на самом деле является библиотекой, которую я включил в первую программу, я имею в виду, что я ее протестировал. Так что, пожалуйста, направьте меня туда, где мне нужны исправления.