.То файлы Linux

У меня есть структура файла C ++ .so, как это: (динамическая библиотека)

Folder 1 (.d and .o extention files)
Folder 2 (.d and .o extention files)
Folder 3 (.d and .o extention files)
processsignal.so
makefile
objects
sources...

Ребята, вы знаете, как скомпилировать и запустить файлы выше, я пытался скомпилировать .so, а также запустил makefile, однако это остается ошибкой:

make:
make: Nothing to be done for `Cartographie/ProcessingFit.d'.

Компиляция G ++:

g++ libsignalProcessing.so
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status

1

Решение

Если вы хотите использовать .so файл в вашей программе, вам нужно использовать -l флаг компилятора gcc. Прежде чем сделать это, вам нужно установить LD_LIBRARY_PATH к месту расположения .so

Например, если у вас есть libsomelib.so в каталоге / home / code, тогда установите LD_LIBRARY_PATH как LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/code а потом export LD_LIBRARY_PATH,
Проверьте это с echo $LD_LIBRARY_PATH, Это должно дать местоположение библиотеки.

Затем в программе, где вы хотите использовать этот.
g++ -L ../code abc.cpp -lsomelib

Я не уверен насчет вашего производственного кода здесь, но в целом, если ваша программа используется в качестве библиотеки, то она может не иметь точки входа, которая является main функция.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector