![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Slash_from_Rjazan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 11.5.2007 Репутация: нет Всего: нет |
Вобщем задача такая.
Есть функции:
Необходимо из них получить obj(lib) файл так, что прилинковав его к произвольному проекту этими функциями можно было лекго пользоваться без использовния дополнительных библиотек... Сейчас программа, использующая эти функции из obj файла ,полученного обычным способом, вываливается с сообщением: "floating point formats not linked Abnormal program termination" |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
И дай пример вызова. P.S. У меня просто вываливается "программа выполнила недопустимую операцию, но я вроде не так ее вызывал" |
|||
|
||||
| EnergoHokum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: нет Всего: 6 |
Не _pascal, а __pascal, это аналог __stdcall, если не путаю.
Добавлено через 9 минут и 16 секунд И если уж работаешь на плюсах, может лучше использовать <iostream>? Зайди на http://www.cplusplus.com/reference/iostream/ , там много интересного. |
|||
|
||||
| Slash_from_Rjazan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 11.5.2007 Репутация: нет Всего: нет |
У меня Borland C++ 3.1.
Директива _pascal определяет порядок формирования имени функции и передачи в нее параметров -- при простой компиляции ее наличие или отсутсвие никак не сказывается. Пример вызова дать не могу ибо вызываю это дело при создании проекта в среде UltraLogik, предназначенной для создания ПО для контроллеров. На контроллере на платфоме x86 работает под DOS. Приаттачу exe файл проекта -- его можно запустить хоть в консоле ХР -- ошибку как у меня увидите... (Знаю, что посылать exe нехорошо, но другого варианта в данном случае нет...) Присоединённый файл ( Кол-во скачиваний: 6 )
Kontr.exe_bak 16,45 Kb |
|||
|
||||
| EnergoHokum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: нет Всего: 6 |
Такое ощущение, что у тебя не прилинкована библиотека работы с float, ругань на "floating point formats not linked" и "Null pointer assignment Divide error" вкомпилирована прямо в файл.
|
|||
|
||||
| Slash_from_Rjazan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 11.5.2007 Репутация: нет Всего: нет |
Хм, сообщение об ошибке я и сам перевел...
Вопрос именно в том как это все туда влинковать!!! |
|||
|
||||
| EnergoHokum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: нет Всего: 6 |
То есть, ты пытаешься компилировать *.cpp именно в таком виде, как привёл в первом посте? Без #include <нужный_заголовочный_файл.h>?
|
|||
|
||||
| Slash_from_Rjazan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 11.5.2007 Репутация: нет Всего: нет |
Я пытаюсь компилировать следующий исходник:
Это сообщение отредактировал(а) Slash_from_Rjazan - 11.5.2007, 14:31 |
|||
|
||||
| EnergoHokum |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: нет Всего: 6 |
Фффух!!! Утомил ты меня, однако! Под конец раб. недели моск плохо работает. Собрал я это под GCC, если что, я до понедельника в инете не буду, но получилось так:
_pascal я заменил на __stdcall, бо GCC _pascal не ест, и в файле, из которого делать exe-шник перед main() добавил упреждающее объявление функций:
Всё заработало, файл создался, что нужно - записалось туда. Ну всё, до понедельника. ИК!!! Добавлено через 1 минуту и 23 секунды На всякий случай, держи Makefile:
|
||||
|
|||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Какие-то ключи компилера должны быть. Смотри его доки. Или приведи нам - разберёмся. ЗЫ У меня такого компилера нет и вживую его никогда не видел |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
||||
|
||||
| Slash_from_Rjazan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 11.5.2007 Репутация: нет Всего: нет |
Компилятор может и староват...
Говорите ключи искать, а хоть в каком направлении? Как требуемая мне возможность называться может? Кстати, может быть вы сразу посоветуете мне какой-либо другой способ решит мою задачу? Т.е. использовать другой язык, может быть системные вызовы ДОС? Важно только, чтобы можно было получить obj файл с функциями... |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Slash_from_Rjazan, как ты вообще всё собираешь?
1. Файл с функциями как компилешь? 2. Файл, юзающей их - тот же вопрос. 3. Как всё сие линкеришь? |
|||
|
||||
| Slash_from_Rjazan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 11.5.2007 Репутация: нет Всего: нет |
1. Файл с функциями как компилешь?
Выставляю нужные мне параметры модели памяти (Medium), далее меню Compile->Make. В папке с проектом получаю obj-файл 2. Файл, юзающей их - тот же вопрос. Этот файл компилируется средой UltraLogik, на выходе тоже получается obj файл 3. Как всё сие линкеришь? С помощью tlnik: tlink c0m.obj+Save.obj+kontr.obj,kontr,,cm.lib У меня уже есть подозрение, что нужно подключить при линковке еще какую-либо библиотеку или модуль, надо только узнать какую... Это сообщение отредактировал(а) Slash_from_Rjazan - 12.5.2007, 16:24 |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Slash_from_Rjazan, во-первых, точно сказать ничего не могу. Во-вторых, если я правильно понял - один файл компилтся с одной среды, другой - с другой? Очень вероятно, что они по-разному играются с ключами компилера. Лучше всё компилить из одного источника.
И ещё - приведи вызывающей код. На всякий случай. Не пойму, причём тут вещественная арифметика... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |