![]() |
|
|
![]()
|
|
| bilbobagginz |
|
||||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
Привет.
Дано: Есть либа на C, eсть GUI на C++ (Написано под wxWidgets). работает, запускается на платформах: Mac, Linux GTK+, MSW используется:
Конечный продукт должен поставляться в форме 1-го экзешника, без установщика, записей в registry, и каких либо вспомогательных файлов (dll и т.д. и т.п.) Описание Проблемы: Если собираю программу с C/C++ runtime DLL, то программа запускается только на системах с девелоперскими тулзами, или с дополнительными, но не обязательными обновлениями (то ли .NET то ли MSXML поставляется с msvcrt80.dll, и это и есть так длл-ка которая вписывается в манифест) если запускается, то бежит корректно. Если собираю программу с C/C++ runtime статически прилинкованной, то программа не слинковывается. Изначально были проблемы с не найденными внешними символами, типа:
Сначала орало на free, потом поигрался стал орать на putchar(). Я согласен, что статически линковка увеличивает экзешник. Существует также опция использования более старой среды разработки, чтобы не зависить от msvcrt80.dll, a напр. Visual Studio .NET 2003, но хотелось бы узнать есть ли у кого опыт таких сборок, и какие опции в проекте нужно указать. При запросе выложу нужные настройки проекта. уже прочитал сл. ссылки:
Спасибо заранее. -------------------- Я ещё не демон. Я только учусь. |
||||
|
|||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 11 Всего: 93 |
Я так понимаю, что нужно пересобрать используемые тобой либы(та что на C и саму wx) с указанием им тоже пользоваться статической версией RTL, после чего, по идее, всё должно успешно слинковаться.
Добавлено через 1 минуту и 31 секунду Ктстати, уточни, нет ли у тебя в итоговой строке запуска линкера ключика /NODEFAULTLIB(или как-то так). -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
не знаю в чем грабли, /NODEFAULTLIB: ..
нет. всё пересобрал, всё равно есть ошибка как указано сверху. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 11 Всего: 93 |
bilbobagginz, ok, обычно ошибки, приведённого тобою типа сопровождаются информацией о том, откуда идёт сама ссылка(имя ф-ции) - что говорит компоновщик? Откуда идёт ссылка на putchar?
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
из моего файла (дается имя объекта.obj, мой файл, который ее использовал )
как я понимаю он не находит внешний символ ни в одной из библиотек. значит: 1. что-то не то с объявленной функцией. 2. не хватает библиотеки, в к-рой эта функция имеется. я чего-то не допонимаю ? -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 11 Всего: 93 |
bilbobagginz, можешь показать buildlog?
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
не могу тут, могу послать по PM.
-------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 2 Всего: 154 |
ИМХО проблема в том как собрана библиотека wxWidgets...
Добавлено через 1 минуту и 21 секунду Я когда собирал, исправлял ихний workspace, что-бы оно статически норм. линковалось... могу посмотреть, но только вечером... |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
wxWidgets пересобирал, собрал всё статически.
Сейчас уже после тех времен дела идут шибко хорошо - не больше 5 проблем компоновки. после рассмотрения Buildlog.htm повниматочнее заметил, что там было выражение: /NODEFAULTLIB:msvcrt.lib после того как убрал оное:
предполагаю надо пошерстить и wxWidgets на предмет /NODEFAULTLIB:<всякости> занимаюсь этим сейчас. надеюсь на лучшее. archimed7592, пока ничего не высылал, когда застряну пошлю обязательно, и когда решу, запощу тут как сделать статику вкл. пару небольших грабелек. кстати, на наглоязычных ресурсах пока такого не нашел (может плохо искал) -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 11 Всего: 93 |
bilbobagginz, может быть поможет: http://lists.wxwidgets.org/archive/wx-users/msg13706.html
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
Проблема решилась 7-ым повторением одной и той же операции пересборки.
т.е. на 7-й раз получилось. Никаких причинно-следственных умозаключений привести не могу...
-------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |