Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибки компиляции консоли с++ и zlib 1.1.3, visual studio 2010 
V
    Опции темы
ohos
Дата 21.1.2012, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 13.12.2010

Репутация: нет
Всего: нет



Привет, скачал в интернете исходники zlib 1.1.3 (знаю, что последняя версия гораздо больше, но мне нужна именно эта) и в microsoft visual studio 2010 пытаюсь скомпилировать простенькое консольное с++ приложение, все файлы zlib включил в проект (архив со всем проектом http://www.fayloobmennik.net/1448112), но при компиляции лезет ряд ошибок, решение которых мне не удается найти в интернете:

Ошибка    1    error LNK2019: ссылка на неразрешенный внешний символ _deflate в функции "int __cdecl def(struct _iobuf *,struct _iobuf *,int)" (?def@@YAHPAU_iobuf@@0H@Z)
Ошибка    2    error LNK2019: ссылка на неразрешенный внешний символ _deflateEnd в функции "int __cdecl def(struct _iobuf *,struct _iobuf *,int)" (?def@@YAHPAU_iobuf@@0H@Z)
Ошибка    3    error LNK2019: ссылка на неразрешенный внешний символ _deflateInit_ в функции "int __cdecl def(struct _iobuf *,struct _iobuf *,int)" (?def@@YAHPAU_iobuf@@0H@Z)
Ошибка    4    error LNK2019: ссылка на неразрешенный внешний символ _inflate в функции "int __cdecl inf(struct _iobuf *,struct _iobuf *)" (?inf@@YAHPAU_iobuf@@0@Z)
Ошибка    5    error LNK2019: ссылка на неразрешенный внешний символ _inflateEnd в функции "int __cdecl inf(struct _iobuf *,struct _iobuf *)" (?inf@@YAHPAU_iobuf@@0@Z)
Ошибка    6    error LNK2019: ссылка на неразрешенный внешний символ _inflateInit_ в функции "int __cdecl inf(struct _iobuf *,struct _iobuf *)" (?inf@@YAHPAU_iobuf@@0@Z)
Ошибка    7    error LNK1120: 6 неразрешенных внешних элементов

Прошу помочь с компиляцией.

Это сообщение отредактировал(а) ohos - 21.1.2012, 14:59
PM MAIL   Вверх
borisbn
Дата 21.1.2012, 16:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



1. Похоже проблема в том, что ты включаешь Си-шный h-ник в c++-ный cpp-шник. Попробуй так
Код
extern "C" {
#include "pure_c_h_file.h"
}

2. Мало кто захочет лезть на какой-то файлопомойкуфайлообменник и скачивать оттуда 6 МБ...
2.1. Выкинь из архива лишнее
2.2. Залей его прямо сюда (прикрепи к теме)
user posted image


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ohos
Дата 21.1.2012, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 13.12.2010

Репутация: нет
Всего: нет



благодарю за совет, попробовал, не помогло, исходник действительно должен быть С-ишный, но в 2010 студии почему-то нету С языка при создании проекта

я бы прикрепил к сообщению архив с проектом, но он просто не влезает, как определить, что лишнее? 
PM MAIL   Вверх
tzirechnoy
Дата 21.1.2012, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 2
Всего: 16



Да выкинь ты эту вижуал студию, только мозги оно конопатить способно.

Hint: предыдущий оратор привёл пример кода, который надо писать в твоём файле.
PM MAIL   Вверх
ohos
Дата 21.1.2012, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 13.12.2010

Репутация: нет
Всего: нет



я вписал 

Код

extern "C" {
#include "zlib.h"
}


но все равно не помогло, если не студией, чем тогда скопмилировать?
PM MAIL   Вверх
tzirechnoy
Дата 21.1.2012, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 2
Всего: 16



Хм. Я только сейчас понял смысл сообщений.

Явно забыто -lz при вызове компилятора.
PM MAIL   Вверх
ohos
Дата 21.1.2012, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 13.12.2010

Репутация: нет
Всего: нет



Цитата(tzirechnoy @ 21.1.2012,  21:41)
Хм. Я только сейчас понял смысл сообщений.

Явно забыто -lz при вызове компилятора.

т.е. мне нужно запустить саму студию с таким параметром или указать его в самом коде?
PM MAIL   Вверх
volatile
Дата 21.1.2012, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(ohos @  21.1.2012,  23:01 Найти цитируемый пост)
мне нужно запустить саму студию с таким параметром или указать его в самом коде? 

ohos, врядли это поможет.
я собирал как-то проект содержащий zlib на студии, проблем не помню вообще никаких. (правда, с другой версией zlib'а)
Скорей всего вы просто забыли в проект добавить библиотеку.
Напишите где-нибудь в *.cpp следующую фразу
#pragma comment(lib,"zlibwapi.lib")
ну и zlibwapi.lib бросьте туда, где ее сможет найти линкер.

PM MAIL   Вверх
ohos
Дата 21.1.2012, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 13.12.2010

Репутация: нет
Всего: нет



с другого форума
Цитата

Вы добавили только *.h файлы, а *.с нет.
Исправленный проект http://files.mail.ru/N7XA2P


запустил, работает, то что я не шарю совсем в с++ даже не отрицаю)
PM MAIL   Вверх
mes
Дата 22.1.2012, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(borisbn @  21.1.2012,  15:21 Найти цитируемый пост)
 Похоже проблема в том, что ты включаешь Си-шный h-ник в c++-ный cpp-шник. 

 smile я так понимаю такое  решение вызвано словом
Цитата(ohos @  21.1.2012,  13:50 Найти цитируемый пост)
 неразрешенный 
 ?
тогда небольшая поправка :
неразрешенный  это не запрещенный, а нерешенный smile




Это сообщение отредактировал(а) mes - 22.1.2012, 00:05


--------------------
PM MAIL WWW   Вверх
vol4ek
Дата 22.1.2012, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 1.5.2011
Где: Минск

Репутация: 0
Всего: 0



Цитата(tzirechnoy @  21.1.2012,  20:23 Найти цитируемый пост)
Да выкинь ты эту вижуал студию, только мозги оно конопатить способно.


цыц


Цитата(volatile @  21.1.2012,  23:45 Найти цитируемый пост)
Скорей всего вы просто забыли в проект добавить библиотеку.Напишите где-нибудь в *.cpp следующую фразу#pragma comment(lib,"zlibwapi.lib")ну и zlibwapi.lib бросьте туда, где ее сможет найти линкер.





PM MAIL ICQ   Вверх
tzirechnoy
Дата 22.1.2012, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 2
Всего: 16



Цитата
фразу#pragma comment(lib,"zlibwapi.lib")ну


Да-да, я именно об этом. Вместо стандартного с основния C метода предлагается насиловать исходник странными прагмами. Студию в морг, возьмите mingw+msys хотя бы.
PM MAIL   Вверх
borisbn
Дата 22.1.2012, 20:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(tzirechnoy @  21.1.2012,  20:23 Найти цитируемый пост)
Да выкинь ты эту вижуал студию

Цитата(tzirechnoy @  22.1.2012,  07:59 Найти цитируемый пост)
Студию в морг,

Подскажите тогда IDE, которая сама добавляет в проект недостающие Си-шники или lib-ины...

В студии (в отличие от других) есть 2 возможности включить lib-ину в проект:
1) 
Цитата(tzirechnoy @  22.1.2012,  07:59 Найти цитируемый пост)
насиловать исходник странными прагмами

2) в опциях проекта добавить путь к lib-файлам и имя включаемой lib-ины

Короче, нечо на студию пенять, если ручки кривые


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
vol4ek
Дата 22.1.2012, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 1.5.2011
Где: Минск

Репутация: 0
Всего: 0



Цитата(borisbn @  22.1.2012,  20:52 Найти цитируемый пост)
Короче, нечо на студию пенять, если ручки кривые


золотые слова
PM MAIL ICQ   Вверх
volatile
Дата 23.1.2012, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(tzirechnoy @  22.1.2012,  07:59 Найти цитируемый пост)
Вместо стандартного с основния C метода предлагается насиловать исходник странными прагмами. Студию в морг, возьмите mingw+msys хотя бы. 

Так никто не заставляет насиловать исходник  
Можете вставлять библотеки в проект руками, также как это делаете в mingw+msys  smile 
То что в студии есть такая возможность, (помимо того что есть в mingw) это что недостаток?.
Буст например активно юзает эту возможность (и довольно по-делу!), посмотрите например boost\config\auto_link.hpp

Вобще пнуть студию лишний раз это какбе круто. (не важно по-делу, ли нет)
Иногда до смешного доходит.
Плохо - уже потому-что есть такая возможность. smile



PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0839 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.