Может ли кто-нибудь помочь с моей проблемой? Вот шаги, которые я предпринял, чтобы создать свою библиотеку и связать ее.
Создание библиотеки:
- Напишите код моей библиотеки
- Скомпилируйте с помощью строки: gcc -c -fPIC -g -Wall ./libnet.c
- Свяжите объектный файл моей библиотеки и создайте общий объектный файл с помощью строки: gcc -shared -o libnet.so -g -Wall ./libnet.o
- Я копирую свою библиотеку в два каталога. Один каталог — это тестовая программа C, которая компонуется правильно, а другой — программа на C++, которая компонуется неправильно.
- Я установил переменную среды LD_LIBRARY_PATH для обоих каталогов, использующих библиотеку
- Я установил переменную среды LD_LIBRARY_PATH для обоих каталогов, которые используют библиотеку
- li>
- Код моя программа
- Скомпилируйте все мои .cpp файлы с помощью строки: g++ -c -g -Wall ./
- Свяжите вместе все мои объектные файлы и общую библиотеку, чтобы создать мою программу с помощью строки: g++ -o -g -Wall -L./ -lnet
PPFLAGS = -g -Wall
TARGET = msgfrwdserver
OBJS = msgfrwdserver.o
msgfrwdhelper.o msgfrwd.o climsgfrwd.o
LIBS = libnet.so
CPPLP =
-L/usr/home /chris/development/legends/servers/monitor
-L/usr/home/chris/development/legends/servers/msgfrwd
CPPFILES = ./msgfrwdserver.cpp
./msgfrwdhelper.cpp
./classes/msgfrwd.cpp
./classes/climsgfrwd.cpp
CPPIP = -I./classes
-I/usr/home/chris/development/legends/libnet
all: ${OBJS} ${TARGET
${TARGET}: ${OBJS} ${LIBS}
g++ -o
${TARGET} ${PPFLAGS} -L. / -lnet
${CPPIP} ${OBJS}
msgfrwdserver.o: ./msgfrwdserver.cpp
g++ -c ${PPFLAGS} ${CPPIP}
./msgfrwdserver.cpp
msgfrwdhelper.o:
./msgfrwdhelper.cpp
g++ -c ${PPFLAGS}
./msgfrwdhelper.cpp
msgfrwd.o:
./classes/msgfrwd.cpp
g++ -c
${PPFLAGS} ./classes/msgfrwd.cpp
climsgfrwd.o: ./classes/climsgfrwd. cpp
g++ -c ${PPFLAGS} ${CPPIP}
./classes/climsgfrwd.cpp
clean: rm
-rf ${TARGET} *.o *~ .core ./classes/< /em>~
Я действительно понятия не имею, в чем может быть проблема. Любая помощь будет очень признательна. Нужно ли мне делать что-то по-другому, чтобы библиотека C работала с программой на C++?
Извините, что файл make неряшлив. Я не совсем правильно перевел, когда пытался заблокировать цитирование или сказать, что это пример кода.
Подробнее здесь: https://stackoverflow.com/questions/236 ... ng-linking
Мобильная версия