На сайте www.sf.net нашла очень полезную для себя библиотеку для создания postscript файлов.
Проблема в том, что мне ее не подключить в обычное консольное приложение.
Ругается вот так:
Ты линкуешь статически, значит нужны *.lib файлы это библиотеки,
если на др. машине все нормально, значит у нее пути для нохождения *.lib совпали, где у тебя твои *.lib лежат.
на чем собираешь?
Если VC++, то в свойствах проекта на вкладке Link пропиши свои *.lib,
если ошибка повторится, посмотри пути в Tools->Options на вкладке Directories
Здравствуйте, esp, Вы писали:
esp>Ты линкуешь статически, значит нужны *.lib файлы это библиотеки, esp>если на др. машине все нормально, значит у нее пути для нохождения *.lib совпали, где у тебя твои *.lib лежат.
esp>на чем собираешь?
esp>Если VC++, то в свойствах проекта на вкладке Link пропиши свои *.lib, esp>если ошибка повторится, посмотри пути в Tools->Options на вкладке Directories
Собираю на VC++.
Только там нет *.lib Там только *.с и *.h. Есть *.mak, но через него тоже не получается.
Re[3]: Как собрать библиотеку?
От:
Аноним
Дата:
18.11.02 10:19
Оценка:
Точно не помню, но все тривиально и инструкций еспа должно вполне хватить.
Здравствуйте, esp, Вы писали:
esp>А еще забыл,
esp>вызывай lib из директории где у тебя DLL лежит, т.е.
esp>*.def и *.dll должны в одной директории лежать
Чего-то я не понимаю...
Ну нет у меня ни def ни *.dll!
Вот что есть:
Здравствуйте DOlya, Вы писали:
DO>На сайте www.sf.net нашла очень полезную для себя библиотеку для создания postscript файлов.
Как называется?
DO>Проблема в том, что мне ее не подключить в обычное консольное приложение.
Есть несколько способов. Насколько я понимаю, имеем следующую структуру:
1. Есть библиотека в исходниках
2. К ней идёт файл сборки (makefile, тот самый *.mak)
3. У тебя есть собственный проект (консольное приложение), в котором ты хочешь использовать эту библиотеку.
Самое простое — сделать так:
1. Создай проект новый проект Win32 Static Library
2. Добавь туда все файлы *.c и *.h из сторонней библиотеки
3. Собери в Debug & Release — получишь lib-файлы для того и другого
4. Открывай свой проект.
5. Измени настройки проекта следующим образом:
В include path добавь путь к .h файлам библиотеки
В library path добавь путь к .lib файлам соответственно в Debug и Release
В список библиотек добавь имя оной библиотеки
6. Собери свой проект
7. Радуйся если работает
Можно воспользоваться makefile для сборки библиотеки. Если у тебя среда разработки настроена правильно — достаточно набрать в коммандной строке в каталоге с библиотекой
NMAKE /f plot_ps.mak
Если не получается — говори, какой у тебя компилятор (VC6?), как разложены проекты по каталогам и т.п. чтобы можно было выдать более конкретные инструкции
Удачи.
Спасибо за ответ
DO>>На сайте www.sf.net нашла очень полезную для себя библиотеку для создания postscript файлов. O>Как называется?
Называется plot_psxps.
Вот что интересно: # Tricky part: make a DLL. I don't know how to it for
# MSDOS/Windows, so you're on your own here
Это комментарии автора
O>Самое простое — сделать так: O>1. Создай проект новый проект Win32 Static Library O>2. Добавь туда все файлы *.c и *.h из сторонней библиотеки O>3. Собери в Debug & Release — получишь lib-файлы для того и другого
Осталасть такая вот ошибка:
fatal error C1083: Cannot open include file: 'sys/utsname.h'
Кажется,это что-то из юникса? Убрать не помогает, т.к. объявляется структура, на которой там все завязано...
Здравствуйте DOlya, Вы писали:
DO>Вот что интересно: # Tricky part: make a DLL. I don't know how to it for DO> # MSDOS/Windows, so you're on your own here DO>Это комментарии автора
Ну что же, кто предупреждён — тот вооружен. Бейся
Меня немного смущает "# Tricky part: make a DLL." — тебе нужна DLL или обойдёшься статической сборкой?
DO>Осталасть такая вот ошибка: DO>
DO>fatal error C1083: Cannot open include file: 'sys/utsname.h'
DO>
Далее у тебя начинается процесс, называемый "портирование", т.е. перенос библиотеки с одной платформы на другую
Обычно, не самое простое занятие, так что придётся повозиться. Либо ты найдёшь в сети уже готовый порт. Гугль не помогает?
DO>Кажется,это что-то из юникса? Убрать не помогает, т.к. объявляется структура, на которой там все завязано...
Хинт: Старайся предоставлять информацию, которая поможет населению тебе помочь без лишних усилий. На текущий момент, чтобы разобраться в проблеме, кому-то нужно будет скачать эту библиотеку и разобраться, что же это такое. А это время. Чужое. Бесплатное Так что в данном случае, стоило привести название структуры и пример использования из библиотеки. Наверняка, кроме структуры есть еще и функции какие-то... Если же просто структура — найди в сети этот заголовочный файл и используй его локально.
Проблема видимо следующая. Ты делаешь #include <plot_ps.h> в CPP файле, и файл компилируется как CPP файл. Поэтому все декларации в plot_ps.h рассматриваются как декларации C++. Отсюда декарарованные имена
Сама же plot_ps библиотека состоит из .C файлов, и скорей всего, у тебя настроено так, что эти файлы компилируются в C моде (и это правильно, потому что иначе, вполне возможно, при компиляции появятся ошибки). По этому, в .LIB файле есть
_ps_endplot
но нет
?ps_endplot@@YAXPADD@Z
Выходы. Либо писать все на С. Либо нужно делать #include <plot_ps.h> как-то вот так
Здравствуйте, Sashko, Вы писали:
S>>Качнул, plot_psxps-6.4.1, собралась без проблем.
S>Вот что получилось с примера cube
S>http://www.ozero.net/~shk/src/cubes.ps
S>Нет PS Viewer'a, так что, по F3, вижу только цифры.