powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / есть специ по gcc?
25 сообщений из 40, страница 1 из 2
есть специ по gcc?
    #38310245
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проконсультируйте меня пожалуйста по поводу линковки.
собираю динамическую либу. при этом использую две других. хочу что-бы одна слинковалась динамически, а вторая статически. какие ключи применить?

λf.(λx.f (x x)) (λx.f (x x))
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310287
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эээ... или я не понимаю задачу или...

Ну если мой хрустальный шар не врет, то...
Допустим у нас в текущем каталоге есть две библиотеки: динамическая: A.dll и статическая: libB.a
Делаем новую динамическую библиотеку C.dll:
gcc -shared -oC.dll c.o -L. -lA -lB
все.

Мирко-пример в аттаче
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310294
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owlю динамическую библиотеку C.dlмне бы под линух.

ну и заодно перефразирую:
есть две сторонних библиотеки. одна динамическая, вторая в двух вариантах.
назовем их А и Б.
мне нужно собрать динамическую либу В, которая линкуется с А - динамически, а с Б - статически.
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310298
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNмне нужно собрать динамическую либу В, которая линкуется с А -
динамически, а с Б - статически.
Значит указывай в списке A.so и B.a.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310310
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNWhite Owlю динамическую библиотеку C.dlмне бы под линух.А это не важно. Замени .dll на .so в моем примере и получишь счастье. Причем это не обязательно, большинству линуксов глубоко плевать какое там расширение у файла.

ZyK_BotaNну и заодно перефразирую:
есть две сторонних библиотеки. одна динамическая, вторая в двух вариантах.
назовем их А и Б.
мне нужно собрать динамическую либу В, которая линкуется с А - динамически, а с Б - статически.Ну с A у тебя нет выбора. Если есть только динамическая версия библиотеки, то и линковаться с ней можно только динамически.
А с Б если есть выбор - то у тебя есть и два отдельных файла: динамический Б.so и статический libБ.a? Ну так укажи вместо ключа -l<library> полное имя нужного файла.
Замени последние две строчки в моем makeit.bat на:
gcc -shared -oC.dll c.o A.dll libB.a
gcc -oT.exe main.o C.dll
и запусти в консоли:
$ sh makeit.bat
$ ./T.exe
И все.
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310318
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owlполное имя нужного файлав том то и проблема, что указую - а толку нет.

возможно я не понимаю проблемы, и дело не в статической линковке - но проблема выглядит так:

мне нужно из эрланг кода заюзать сишный, для этого я использую вот данную либу(enif) ( http://www.erlang.org/doc/man/erl_nif.html).

в моем коде юзается данная либа(она может быть только динамической), а также либа jansson( http://www.digip.org/jansson/) и мной скопированная еще одна либа.

если я компилю указываю пути к *.a фалам двух последних либ. вторая подключается корректано, а на jansson ругается что не находит методов.

отличие между первой и второй в том, что первую(jansson) - я устанавливал из репа, и она везде прописана(вот я и подумал что жцц игнорит указанный мной путь, и находит либу в стандартных директориях),
а вторая компилировалось мной, и лежит в нестандартной директории - и с ней проблем нет.

внимание вопрос : что может быть не так с установленной с репы jansson либы, что указав полный путь к либе при компиляции, и после этого загражая скомпилированную либу из эралнга - функции из jansson-а не находятся?
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310322
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
з.ы. я ни грамму не сишник, и ни грамму не линуксоид. следовательно могу не знать даже банальных мелочей. поэтому не умалчивайте даже казалось бы очевидных мелочей.
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310324
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример отсюда
Код: plaintext
1.
gcc -o test test.c -L/usr/local/lib -Wl,-Bstatic -lcunit -Wl,-Bdynamic -labc -lyz


Если кратко, то то что после -Bstatic линкуется статически, а то что после -Bdynamic - динамически.
Если не указывать ни то ни другое, то не знаю, но подозреваю что будет использовано динамическое связывание.
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310326
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyПример отсюда
Код: plaintext
1.
gcc -o test test.c -L/usr/local/lib -Wl,-Bstatic -lcunit -Wl,-Bdynamic -labc -lyz



Если кратко, то то что после -Bstatic линкуется статически, а то что после -Bdynamic - динамически.
Если не указывать ни то ни другое, то не знаю, но подозреваю что будет использовано динамическое связывание.спасибо, завтра проверю - отпишусь
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310333
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNесли я компилю указываю пути к *.a фалам двух последних либ. вторая подключается корректано, а на jansson ругается что не находит методов.Сделай полное указание имен.
gcc a.o b.o c.o /usr/local/lib/somecool.so /home/user/extra_libs/someotherlib.a
как-то так.
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310339
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN,

Пара замечаний:
1) -Wl,-Bstatic - это один неразрывный ключ как и -Wl,-Bdynamic
2) Так как вы собираете дин. либу а не приложение, то надо компилировать с ключами для либ, как минимум -shared и (если 64-бита) -fPIC, может и еще какие-то.
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310344
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlZyK_BotaNесли я компилю указываю пути к *.a фалам двух последних либ. вторая подключается корректано, а на jansson ругается что не находит методов.Сделай полное указание имен.
gcc a.o b.o c.o /usr/local/lib/somecool.so /home/user/extra_libs/someotherlib.a
как-то так.та указывал. игнорит, либо проблема не в статической линковке.
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310345
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlСделай полное указание имен.
Ага, и забей на переносимость :)
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310348
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyWhite OwlСделай полное указание имен.
Ага, и забей на переносимость :)та мне пока без переносимости можно, прототип пилию.
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310351
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyПример отсюда
Код: plaintext
1.
gcc -o test test.c -L/usr/local/lib -Wl,-Bstatic -lcunit -Wl,-Bdynamic -labc -lyz


Если кратко, то то что после -Bstatic линкуется статически, а то что после -Bdynamic - динамически.
Если не указывать ни то ни другое, то не знаю, но подозреваю что будет использовано динамическое связывание.
Нет-нет-нет..

Во первых, ключи: -Wl,-Bstatic и -Wl,-Bdynamic. Если ты используешь gcc, то -Wl обязателен. Это передача ключей для ld который вызывается изнутри gcc.

Во вторых, -Bstatic и -Bdynamic влияют только на то как будет обрабатываться дальнейший -l. То есть если у тебя одновременно есть libA.a и A.so, то:
gcc .... -Wl,-Bstatic -lA
будет использован libA.a
gcc .... -Wl,-Bdynamic -lA
будет использован A.so

В третьих, будет в итоге линковка динамическая или статическая зависит только от того какая библиотека была использована, ключи на это не влияют.
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310359
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNа на jansson ругается что не находит методов.
Ну так внимательно прочитай ругательства, выпиши на бумажку имена не найденных символов, а
потом ищи библиотеку в которой они объявляются. И вот её уже добавляй в список.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310394
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovZyK_BotaNа на jansson ругается что не находит методов.
Ну так внимательно прочитай ругательства, выпиши на бумажку имена не найденных символов, а
потом ищи библиотеку в которой они объявляются. И вот её уже добавляй в список.та говорю же, из библиотеки jansson. если компилю консольную программку - то проблем нет. все работает.
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310397
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNта говорю же, из библиотеки jansson
Это ты говоришь. А документация и, главное, nm с тобой согласны?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310409
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovZyK_BotaNта говорю же, из библиотеки jansson
Это ты говоришь. А документация и, главное, nm с тобой согласны?я что, не знаю какую функцию и с какой библиотеки юзаю )))
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310416
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNя что, не знаю какую функцию и с какой библиотеки юзаю )))

Ну, как минимум один линкер в этом абсолютно уверен.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310433
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovZyK_BotaNя что, не знаю какую функцию и с какой библиотеки юзаю )))

Ну, как минимум один линкер в этом абсолютно уверен.проблема в том, что я сам не понял - в чем линкер не уверен.

вот здесь я задал вопрос с другой стороны, может проблема совсем не в линкере:
http://www.linux.org.ru/forum/development/9299809?lastmod=1372182920343
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310434
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
з.ы. вы сколько там ответов видели? еще недавно там был диалог реплик на 8. сейчас я 1-ну вижу.
что за глюки? (модерировать там было нечего, вернее только пару сообщений)
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310436
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага, написано что поудаляли. не видел я на ЛОРе такой модерации
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310451
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNвот здесь я задал вопрос с другой стороны
Ни здесь ни там Вы не приводите текста получаемых ошибок. Ни после намёков, ни после
прямых посылов. В таких условиях на месте модераторов я бы отправил весь топик - в утиль,
а Вас - в бан на недельку за упёртость.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
есть специ по gcc?
    #38310457
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovZyK_BotaNвот здесь я задал вопрос с другой стороны
Ни здесь ни там Вы не приводите текста получаемых ошибок. Ни после намёков, ни после
прямых посылов. В таких условиях на месте модераторов я бы отправил весь топик - в утиль,
а Вас - в бан на недельку за упёртость.


ZyK_BotaNмне нужно из эрланг кода заюзать сишный,


Dimitry SibiryakovВы не приводите текста получаемых ошибок.undefined symbol json_string_value
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / есть специ по gcc?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]