![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Guest_automax |
|
|||
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 |
|
|||
![]() Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 4 Всего: 41 |
Так надо же подключить библиотеки, в которых данные функции реализованны.
-------------------- Волны гасят ветер... |
|||
|
||||
automax |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 30.9.2002 Репутация: нет Всего: нет |
И как это сделать?
|
|||
|
||||
Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
лезь в настройки проекта. там в линковщика. там длинная строчка с .lib'ами. вот там и прописывай.
|
|||
|
||||
automax |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 30.9.2002 Репутация: нет Всего: нет |
И что так каждый *.cpp файл нужно прописывать в настройках линковщика, ведь у меня есть исходник.
Объясните пожалуйста подробнее. |
|||
|
||||
Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
automax нет. только внешние функции. дел в том, что .h файл сам по себе не содержит функции, он содержит лишь описание. а сама фун-я либо в cpp либо в .dll. так вот чтобы линкер узнал что где она в dll используются .lib файлы.
|
|||
|
||||
automax |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 30.9.2002 Репутация: нет Всего: нет |
Все это я прекрасно понимаю. В этом вся и проблема: У меня есть и заголовочный файл h и исходный файл cpp.
Вот мои дейстсвия: 1) Кидаю их в папку проекта 2)И там где мне нужно их использовать включаю h файл Но при попытке сделать build поялвляются ошибки (см. выше). Что я не правильно делаю? |
|||
|
||||
automax |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 30.9.2002 Репутация: нет Всего: нет |
Поднимаю тему
|
|||
|
||||
dim |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 24.12.2002 Репутация: нет Всего: нет |
Так ведь если есть cpp файл его не только надо кинуть в папку проекта, а и подключить чтобы .obj файл скомпилился, а из него линкер вытянет нужные имена.
--------------------
that's all |
|||
|
||||
automax |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 30.9.2002 Репутация: нет Всего: нет |
В смысле подсоединить к проекту, добавляя к исходникам?
Это я делаю, но это также не помогает. |
|||
|
||||
Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
automax да! добавить в проект нада! и .h и .cpp
|
|||
|
||||
automax |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 30.9.2002 Репутация: нет Всего: нет |
Еще раз повторяю: все добавлено и h и cpp, но VC++ игнорирует и все выдает ошибки.
|
|||
|
||||
automax |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 30.9.2002 Репутация: нет Всего: нет |
Ошибки исчезли после добавления к файлу main.cpp строчки
#include "rgkt4.c" То есть пришлось добавить не только заголовочный файл, но и реализацию. Скажите пожалуйста, действительно ли так надо делать каждый раз? Может кто-нибудь посмотрит проект, он весит всего 30Кб. |
|||
|
||||
Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
automax кинь на мыло если время будет. посмотрю и объясню тогда все.
|
|||
|
||||
automax |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 30.9.2002 Репутация: нет Всего: нет |
Vaulter пытаюсь послать тебе на E-Mail проект, но письмо возвращается. Ты правильно указал адрес?
|
|||
|
||||
Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
automax извини, вроде да
Это сообщение отредактировал(а) vaulter - 23.2.2003, 00:11 |
|||
|
||||
Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
automax ну че? почту получил? как там? траблов нет?
|
|||
|
||||
automax |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 30.9.2002 Репутация: нет Всего: нет |
Да все получилось когда сделал, что сказал vaulter. А именно:
Я удалил из проекта все не важные файлы, оставил только .cpp .h .dsp и .dsw. закомпилил - ПАШЕТ!!! во всяком случае релизнул ;) чето короче было гдето прописано не то, вот он и не находил. Хорошо что работает, но мне так и не понятно в чем проблема. Кто-нибудь знает что за файл stdafx.h. Есть идея что если прописывать в нем, то все получится, но при пустом проекте он автоматически не создается. Что нужно его самому писать? Тогда возникает вопрос что там писать? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |