У меня есть следующая структура проекта, где libb.so зависит от liba.so, libc.so зависит от libb.so и libd.so зависит от libc.so
abcd
├── a
│ ├── lib.cpp
│ ├── lib.o
│ └── liba.so
├── b
│ ├── lib.cpp
│ ├── lib.o
│ └── libb.so
├── c
│ ├── lib.cpp
│ ├── lib.o
│ └── libc.so
└── d
├── lib.cpp
├── lib.o
└── libd.so
Я компилирую все вышеуказанные библиотеки, как показано ниже
liba.so
gcc -c -Wall -fPIC lib.cpp
gcc -shared -o liba.so lib.o
libb.so
gcc -c -Wall -fPIC lib.cpp
gcc -shared -o libb.so lib.o -L../a -la
libc.so
gcc -c -Wall -fPIC lib.cpp
gcc -shared -o libc.so lib.o -L../b -Wl,-rpath-link=$(pwd)../a -lb
libd.so
gcc -c -Wall -fPIC lib.cpp
Чтобы сгенерировать libd.so, какая из приведенных ниже команд является правильной? На данный момент обе команды создают libd.so, но хотелось бы узнать идиоматическую.
gcc -shared -o libd.so lib.o -L../c -Wl,-rpath-link=$(pwd)../b -Wl,-rpath-link=$(pwd)../a -lc
Или
gcc -shared -o libd.so lib.o -L../c -Wl,-rpath-link=$(pwd)../b -lc
Подробнее здесь: https://stackoverflow.com/questions/798 ... e-necessar
Нужно ли указывать опцию компоновщика -Wl,-rpath-link=dir для всех необходимых путей поиска зависимостей библиотеки? ⇐ C++
Программы на C++. Форум разработчиков
1767363906
Anonymous
У меня есть следующая структура проекта, где libb.so зависит от liba.so, libc.so зависит от libb.so и libd.so зависит от libc.so
abcd
├── a
│ ├── lib.cpp
│ ├── lib.o
│ └── liba.so
├── b
│ ├── lib.cpp
│ ├── lib.o
│ └── libb.so
├── c
│ ├── lib.cpp
│ ├── lib.o
│ └── libc.so
└── d
├── lib.cpp
├── lib.o
└── libd.so
Я компилирую все вышеуказанные библиотеки, как показано ниже
liba.so
gcc -c -Wall -fPIC lib.cpp
gcc -shared -o liba.so lib.o
libb.so
gcc -c -Wall -fPIC lib.cpp
gcc -shared -o libb.so lib.o -L../a -la
libc.so
gcc -c -Wall -fPIC lib.cpp
gcc -shared -o libc.so lib.o -L../b -Wl,-rpath-link=$(pwd)../a -lb
libd.so
gcc -c -Wall -fPIC lib.cpp
Чтобы сгенерировать libd.so, какая из приведенных ниже команд является правильной? На данный момент обе команды создают libd.so, но хотелось бы узнать идиоматическую.
gcc -shared -o libd.so lib.o -L../c -Wl,-rpath-link=$(pwd)../b -Wl,-rpath-link=$(pwd)../a -lc
Или
gcc -shared -o libd.so lib.o -L../c -Wl,-rpath-link=$(pwd)../b -lc
Подробнее здесь: [url]https://stackoverflow.com/questions/79859183/does-the-linker-option-wl-rpath-link-dir-need-to-be-given-for-all-the-necessar[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия