2014-01-03 2 views
1

Я довольно новичок в C++ и использую eclipse.Eclipse, лучший способ создать общую библиотеку?

У меня есть Native C++ статической библиотеки с C++/CLI Упаковочный в Visual Studio 2012.

Теперь я строю код Native C++ в Linux с Затмения (Juno Service Release 2) и GCC 4.2.4.

Я создал Пустой проект Shared Library в Затмении и добавлены все мои .h и .cpp файлы, и пусть Eclipse, сделать здание. Однако я получил ошибку

relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC 

я добавил флаг -fPIC в Project-> Settings-> GCC C++ от компилятора> Различные изделия-> Другие флаги.

Я не знаю никого, владеющего Linux/Eclipse, поэтому я не уверен, что нашел наилучший путь.

Есть ли лучший или «более правильный» способ создания общей библиотеки, чем тот, который я только что описал? Есть ли какие-либо проблемы для подхода, который я принял?

ответ

1

Добавление -fPIC - правильная вещь, вы должны быть в порядке.

При загрузке необходимо переместить общие библиотеки (по ldd), и есть два основных подхода: перемещение времени загрузки и независимый от положения код (ПОС), причем последний является основным в современных решениях и архитектурах.

+0

А что касается использования Eclipse, как я? Позволяя ему создавать свой make-файл и все, это тоже должно быть хорошо? Или было бы лучше, если бы я сам создавал makefile и создавал, например, «Makefile Project с существующим кодом»? – Dzyann

+1

Я думаю, что хорошо использовать проект «Общая библиотека» Eclipse. Если вам комфортно работать с Makefile/s, проще управлять некоторыми аспектами напрямую, но вы не упомянули о каких-либо конкретных осложнениях (кроме -fPIC) в вопросе, поэтому я думаю, что вы должны продолжить работу с Eclipse. Кроме того, google для «создания общей библиотеки с Eclipse» я просто сделал, и появилось много хороших страниц. – mockinterface

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