![]() |
|
|
![]()
|
|
| TheDestroyer |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 5.11.2007 Репутация: нет Всего: нет |
Помогите, пожалуйста, разобраться.
Необходимо сделать приложение независимым от установленных или нет библиотек и вшить их в фаил (чтобы не класть их рядом с файлом). В свойствах проекта меняю: Свойства конфигурации - С/С++ - Создание кода - Библиотека времени выполнения - MTd (или MT). При компиляции возникают ошибки:
При компиляции в режиме MD (или MDd) - все нормально. Похоже на многократное переопределение, как с этим справиться? |
|||
|
||||
| jonie |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
А /MT(d) разве это не динамическая линковка?
но главное вот это:
хинт: Есть еще настройка "ignore specific library"... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
| TheDestroyer |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 5.11.2007 Репутация: нет Всего: нет |
Да, похоже используются библиотеки, созданные в режиме MD. Что смог пересобрал, остаются: iconv.lib и Ws2_32.lib
Для iconv использовал libiconv, скачанный с http://gnuwin32.sourceforge.net/packages/libiconv.htm. Пытаюсь пересобрать его в режиме MT. Пытаюсь создать статическую библиотеку по инструкции отсюда http://msdn.microsoft.com/ru-ru/library/ms235627.aspx , но никак не могу разобраться со структурой исходников (libiconv-1.9.2-src). Статическую библиотеку собирал одажды - zlib, все довольно понятно. А тут неясно что вставлять в фаил проекта статической библиотеки. Если же пользоваться инструкцией в файле README.woe32, приложенном в архиве:
В этом случае уже на 1м шаге выдает ошибку:
iconv.lib(iconv.obj) : error LNK2019: ссылка на неразрешенный внешний символ __i mp__locale_charset в функции _libiconv_open чего-то не хватает. Как правильно пересобрать iconv? |
||||
|
|||||
| TheDestroyer |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 5.11.2007 Репутация: нет Всего: нет |
Проблему решил
Удалось скомпилироватьбез ошибок в режиме MT. Сделал следующее: http://support.microsoft.com/kb/148652
т.е. в Свойства проекта - компоновщик - ввод - игнорировать указанную библиотеку добавить LIBCMTD.lib В Свойства проекта - компоновщик - ввод - добавить модуль в сборку - LIBCMTD.lib Это для режима Debug. Поставил режим Release. При компоновке выдает 382 ошибки:
Удалил игнорирование библиотеки, поставленное ранее и все заработало в Release режиме. |
||||
|
|||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
ну я писал про хинт - игнорирование библиотек, но это лишь затычка.
Ну если в релизе все ок, знать у вас liiconv собрана в релизе) Почему у вас ее пересобрать не удалось фиг знает... я в свое время собирал без особых проблем... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| TheDestroyer |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 5.11.2007 Репутация: нет Всего: нет |
Libiconv последней версии 1.13.1 не поддерживает более Visual Studio, makefile отсутствует, очем и написано в readme. Удалось пересобрать под Visual Studio с помощью патча:
http://netimperia.livejournal.com/25553.html Единственное в инете место по решению этой проблемы. На всякий случай скопирую решение оттуда сюда:
Присоединённый файл ( Кол-во скачиваний: 22 )
libiconv_1.13.1_win_vc9_v1.zip 19,99 Kb |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |