2012-06-19 4 views
1

Добрый день! Я запускаю проект C++ C++ в eclipse. Я хочу использовать мой существующий файл .so и связывать его в main.cpp. Я ищу об этом, но не могу найти правильный метод для меня. Я использую ubuntu. Спасибо за любую помощь!Невозможно связать созданный файл .so с main.cpp

+0

Задать свой код ошибки. – dirkgently

ответ

1

Для связи с библиотекой необходимо предоставить компилятору (или компоновщику) флаг -l и имя библиотеки. Например, если вы хотите связать библиотеку с именем libjustine.so, вы должны поставить свой компилятор (gcc, если C, g ++, если C++), флаг -ljustine, а затем компилятор проинструктирует компоновщик связать файл libjustine .so в пути библиотеки (обычно не менее /usr/lib/ и /usr/local/lib/).

Однако, если вы хотите определить свой собственный каталог библиотеки, например Библиотеки/ каталога в внутри директории проекта, вы должны использовать -L флаг и поставить нужный каталог библиотеки (относительно текущего каталога), что например, -L/lib/, поэтому компилятор может поручить компоновщику искать нужную библиотеку от lib/ вместо, например, /usr/lib/, где он ищет файл по умолчанию.

+0

Можете ли вы предоставить мне пример кода для этого? например, я хочу связать libjustinte.so с main.cpp. это libjustine.so необходимо установить или вам просто нужно поместить его в/usr/lib или/usr/local/lib? спасибо за Ваш ответ! –

+0

Я не знаю, как вы определяете параметры компоновщика в Eclipse, поэтому я не могу дать прямой ответ на вашу проблему таким образом. Но да, вам нужно иметь файл * libjustinte.so * в так называемом пути библиотеки. Это * обычно * включает в себя как/usr/lib, так и/usr/local/lib, так что оба должны работать. Как я уже упоминал в ответе, вы также можете предоставить свой компилятор C или C++ (gcc/g ++) с флагом '-L', чтобы определить путь к библиотеке относительно текущего каталога. – zxcdw

+0

Что делать, если у меня что-то вроде libv8.so.3.8.9.20? Кажется, это не работает ... :( – m93a

Смежные вопросы