CAFFE: Как построить динамическую библиотеку с относительным путем к ее зависимым библиотекам - PullRequest
0 голосов
/ 03 июня 2019

Я разрабатываю динамическую библиотеку libmylib.so для распространения.Вот почему я связываю его с его зависимостями, используя относительный путь.Мне просто нужно скопировать все зависимости в мою собственную структуру, сгенерировать простой tar и поделиться им с кем-либо.Он работает нормально для большинства зависимостей, но я пытаюсь сделать то же самое с Caffe (https://github.com/BVLC/caffe).

Я компилирую Caffe, используя CMakeLists.txt через эту команду, чтобы сгенерировать динамическую библиотеку libcaffe.so.1.0.0.

cmake -DBUILD_SHARED_LIBS=ON ..

Мой вопрос: как построить Caffe, связывающий libcaffe.so.1.0.0 с его зависимостями , используя относительный путь ? Какую модификацию я должен сделать в проекте Caffe CMakeLists.txt, чтобы выполнитьэта цель?

В моем проекте мне нравится ниже, но я не знаю, как изменить Caffe CMakeLists.txt к тому же.

SET (DEP_LIBS ${CMAKE_SOURCE_DIR}/../libs)
SET (CMAKE_SHARED_LINKER_FLAGS "-Wl,-rpath,$ORIGIN/../libs")

target_link_libraries(
    mylib 
    ${DEP_LIBS}/libcaffe.so.1.0.0
    ${DEP_LIBS}/otherlibs.so)

Он отлично работает для любого otherlibs.so, но не для libcaffe.so.1.0.0. После do ldd -d libmylib.so я вижу, что Caffe ищет свои зависимости по их первоначальному пути, а не по моей собственной структуре lib, как otherlibs.so do.

...