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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка Unresolved в С++ 
:(
    Опции темы
Guest_automax
Дата 20.2.2003, 02:16 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здравствуйте!


При попытке создать программу (build), VC++ выдает ошибки:

Linking...
main.obj : error LNK2001: unresolved external symbol "void __cdecl rkt4(float,float,float *,void (__cdecl*)(float,float *,float *))" (?rkt4@@YAXMMPAMP6AXM00@Z@Z)
main.obj : error LNK2001: unresolved external symbol "void __cdecl init_rk(int,float * *)" (?init_rk@@YAXHPAPAM@Z)
Debug/prog.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

prog.exe - 3 error(s), 0 warning(s)

Обе функции вызывающие ошибки объявлены в h файле rgkt4.h:

#ifndef _RGKT_
#define _RGKT_
typedef void (*mdl)(float t, float* py, float* py1);
void init_rk(int N, float* *py);
void rkt4(float t, float dt, float* py, mdl model);
#endif

Я их использую в файле main.cpp.

Объясните пожалуйста, в чем проблема.

P.S. Кстати эта же ошибка появляется всякий раз, как в программу включаются библиотеки, написанные не в данном проекте.
  Вверх
Fantasist
Дата 20.2.2003, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


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

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



Так надо же подключить библиотеки, в которых данные функции реализованны.


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


Шустрый
*


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

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



И как это сделать?
PM MAIL   Вверх
Vaulter
Дата 20.2.2003, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



лезь в настройки проекта. там в линковщика. там длинная строчка с .lib'ами. вот там и прописывай.


--------------------
PM MAIL WWW ICQ   Вверх
automax
Дата 20.2.2003, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



И что так каждый *.cpp файл нужно прописывать в настройках линковщика, ведь у меня есть исходник.

Объясните пожалуйста подробнее.
PM MAIL   Вверх
Vaulter
Дата 20.2.2003, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



automax нет. только внешние функции. дел в том, что .h файл сам по себе не содержит функции, он содержит лишь описание. а сама фун-я либо в cpp либо в .dll. так вот чтобы линкер узнал что где она в dll используются .lib файлы.


--------------------
PM MAIL WWW ICQ   Вверх
automax
Дата 20.2.2003, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Все это я прекрасно понимаю. В этом вся и проблема: У меня есть и заголовочный файл h и исходный файл cpp.

Вот мои дейстсвия:
1) Кидаю их в папку проекта
2)И там где мне нужно их использовать включаю h файл

Но при попытке сделать build поялвляются ошибки (см. выше).

Что я не правильно делаю?
PM MAIL   Вверх
automax
Дата 21.2.2003, 03:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Поднимаю тему
PM MAIL   Вверх
dim
Дата 21.2.2003, 03:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Так ведь если есть cpp файл его не только надо кинуть в папку проекта, а и подключить чтобы .obj файл скомпилился, а из него линкер вытянет нужные имена.
--------------------
that's all
PM MAIL   Вверх
automax
Дата 21.2.2003, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



В смысле подсоединить к проекту, добавляя к исходникам?
Это я делаю, но это также не помогает.
PM MAIL   Вверх
Vaulter
Дата 21.2.2003, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



automax да! добавить в проект нада! и .h и .cpp


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


Шустрый
*


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

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



Еще раз повторяю: все добавлено и h и cpp, но VC++ игнорирует и все выдает ошибки.
PM MAIL   Вверх
automax
Дата 21.2.2003, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ошибки исчезли после добавления к файлу main.cpp строчки
#include "rgkt4.c"

То есть пришлось добавить не только заголовочный файл, но и реализацию.

Скажите пожалуйста, действительно ли так надо делать каждый раз?

Может кто-нибудь посмотрит проект, он весит всего 30Кб.

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


Эксперт
***


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

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



automax кинь на мыло если время будет. посмотрю и объясню тогда все.


--------------------
PM MAIL WWW ICQ   Вверх
automax
Дата 22.2.2003, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Vaulter пытаюсь послать тебе на E-Mail проект, но письмо возвращается. Ты правильно указал адрес?
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.1257 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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