gmp-lib & builder c++
взял с сайта: http://cs.nyu.edu/exact/core/gmp/
dynamic GMP library and header file for MinGW: gmp-dynamic-mingw-4.1.tar.gz
в архиве присутствуют: libgmp-3.dll, gmp.h, .info файлы
коммандой implib.exe -a -f libgmp-3.lib libgmp-3.dll создал libgmp-3.lib
кинул libgmp-3.lib, libgmp-3.dll, gmp.h в папку проекта
добавил libgmp-3.lib в проект через Project->Add to project
в коде добавил :
#pragma link "libgmp-3.lib"
на попытку скомпилировать проект выдаёт:
[BCC32 Error] gmp.h(522): E2147 'FILE' cannot start a parameter declaration
[BCC32 Error] gmp.h(545): E2147 'FILE' cannot start a parameter declaration
[BCC32 Error] gmp.h(556): E2147 'FILE' cannot start a parameter declaration
[BCC32 Error] gmp.h(812): E2303 Type name expected
[BCC32 Error] gmp.h(817): E2303 Type name expected
[BCC32 Error] gmp.h(885): E2147 'FILE' cannot start a parameter declaration
[BCC32 Error] gmp.h(890): E2147 'FILE' cannot start a parameter declaration
[BCC32 Error] gmp.h(1095): E2303 Type name expected
[BCC32 Error] gmp.h(1114): E2147 'FILE' cannot start a parameter declaration
[BCC32 Error] gmp.h(1259): E2303 Type name expected
[BCC32 Error] gmp.h(1279): E2147 'FILE' cannot start a parameter declaration
[BCC32 Warning] gmp.h(1565): W8041 Negating unsigned value
[BCC32 Error] main.cpp(26): E2268 Call to undefined function 'gmp_randinit_mt'
подскажите пожалуйста, что я сделал неправильно иил как правильно подключить данную либу.
коммандой implib.exe -a -f libgmp-3.lib libgmp-3.dll создал libgmp-3.lib
перед этим вам необходимо использовать утилиту
coff2omf libgmp-3.dll libgmp-bcb-3.dll
а уж потом
implib.exe -a -f libgmp-bcb-3.lib libgmp-bcb-3.dll
и соотвественно работать с данной библиотекой.
Скорей всего причина в этом. Ну и проверьте в заголовочном файле макросы.
coff2omf libgmp-3.dll libgmp-bcb-3.dll
получаю такой ответ:
ion
ERROR: COFF error: libgmp-3.dll
(coffread.cpp, 1502) : invalid machine type detected
читал, дело было не в этом, а в настройках проекта в 2009-м билдере.
теперь получил другую проблему - в зависимости от того какой Implib использовать bcb 2009 выводит либо
если использую implib (-a -c или -a -f) от bcb 2009, либо
или
(программа запускается) если использую Implib от bcb 6.
создал новый в bcb6, взял длл и хидер отсюда, импортировал lib файл implib-ом с флагами -a -c, всё скомпилировалось, запустилось, но при нажатии кнопки(в обработчике которой используется обьявление переменной и использование функции gmp) получаю:
проект для bcb6:
всё понял, благодарю. тема исчерпана.
Мне необходимо GMP прикрутить к c++ builder 2009
Мои попытки не увенчались успехом, поэтому вопрос и задаю
1. Скачал с http://cs.nyu.edu/exact/core/gmp/ static-vc-4.1.2 там файл gmp.lib его конвертировал программкой coff2omf в результате получал файл размером меньше 1 Кб =(
2. Скачал от туда же dynamic-vc, но implib обработать не удалось
3. Качал из 5 поста файл gmp_proj, но после подключение к новому проекту, программа запустилась, но произошло прерывание.
Вобщем может кто-нибудь поможет собрать данную библиотеку под C++ Bulder 2009, мне ооочень надо и ооочень срочно =)
Заранее спасибо!!!
Приложение из поста 5 не работает так как необходима еще *.dll, а это мне не годиться так как у меня ее нет и мне надо только статическую сборку, без dll.
Поэтому я думаю либо с http://cs.nyu.edu/exact/core/gmp/ попытаться еще раз конвертировать в builder lib
либо с http://www.mpir.org/ (это тоже самое что и GMP, просто название другое) собрать в Builder-e
Далее все это решил собрать в билдере. Библиотека собралась но
mpz_init (n);
такой код работает, но код:
не собирается так как Unresolved external '___gmpn_mul_1'
Огромная просьба помочь в чем дело и почему так происходит. Вот архив с кодом библиотеки http://webise.jino.ru/mpir_cbd2.rar
Приложение из поста 5 не работает так как необходима еще *.dll, а это мне не годиться так как у меня ее нет и мне надо только статическую сборку, без dll.
Поэтому я думаю либо с http://cs.nyu.edu/exact/core/gmp/ попытаться еще раз конвертировать в builder lib
либо с http://www.mpir.org/ (это тоже самое что и GMP, просто название другое) собрать в Builder-e
что в вашем понимании только статическую сборку, без dll? Если у вас нет длл - что статическая что динамическая работать не будет
статическая - я имел ввиду *.lib файл. Я собирал под Visual Studio *.lib файлы так что в сам *.lib файл прописан программный код и при запуске приложение *.lib файл как бы становится содержимым программы и *.dll файл не требуется. На то *.lib файл и есть, что бы при запуске не требовать *.dll IMXHO
У меня как раз жара нет. Если не верите специально собрал проект. Посмотрите во вложении. Как видно при сборке и после нее *.dll не требуется так как используется *.lib файл