если вы видите этот текст, отключите в настройках форума использование JavaScript
Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания .
Новичкам также крайне полезно ознакомиться с данным документом .
[C++] Ошибка линкования в Билдере 6.0 03.09.03 23:55
Автор: Fantom Статус: Незарегистрированный пользователь
Ситуация такова:
Пишу под консольным приложением CGI - скрипт, компилиться нормально, а при линкованиии начинает материться нижеследующими словами:
[Linker Error] Unresolved external 'fmakeword(std::FILE *, char, int *)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\CGI3\UNIT1.OBJ
[Linker Error] Unresolved external 'plustospace(char *)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\CGI3\UNIT1.OBJ
[Linker Error] Unresolved external 'unescape_url(char *)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\CGI3\UNIT1.OBJ
[Linker Error] Unresolved external 'makeword(char *, char)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\CGI3\UNIT1.OBJ
---
ниже приведены включенные хидеры, и код на который материться линкер:
#include <stdlib.h>
#ifndef NO_STDLIB_H
#include <iostream.h>
#endif
#define MAX_ENTRIES 10000
---
char *makeword(char *line, char stop);
char *fmakeword(FILE *f, char stop, int *len);
char x2c(char *what);
void unescape_url(char *url);
void plustospace(char *str);
---
Пожулуйста скажите че ни так а? я ведь не волшебник я только учусь, а учусь естественно на ЧУЖИХ исходниках :))
[C++] Попробуй следущее... 05.09.03 14:21
Автор: CrazyPitbull Статус: Незарегистрированный пользователь
Опыт работе с билдой у меня большой, иногда уменя вылетали и ещё покруче ошибки... Я долго в них капался и немог найти. Однажды я разозлился на это всё дело, убил всё обжи(*,obj) и нажал rebuild all project. О чудо у меня исчезли все эти ошибки и программа запахала. Я это к тому, что в результате частого компилирования иногда обжи заполняются всякой*** поэтому лугче их убить и всё заново сбилдить.
[C++] Если есть iostream, то это скорее всего CPP 04.09.03 12:12
Автор: amirul <Serge> Статус: The Elderman
> ниже приведены включенные хидеры, и код на который > материться линкер: > > #include <stdlib.h>
> #ifndef NO_STDLIB_H
> #include <iostream.h>
> #endif
> #define MAX_ENTRIES 10000
> ---
Попробуй сделать так
#ifdef __cplusplus
extern "C" {
#endif
char *makeword(char *line, char stop);
char *fmakeword(FILE *f, char stop, int *len);
char x2c(char *what);
void unescape_url(char *url);
void plustospace(char *str);
#ifdef __cplusplus
}
#endif
---
> Пожулуйста скажите че ни так а? я ведь не волшебник я > только учусь, а учусь естественно на ЧУЖИХ исходниках :))
[C++] Эк ты загнул %-) 04.09.03 16:17
Автор: Ktirf <Æ Rusakov> Статус: Elderman
Сразу надо было выяснять, где находятся определения функций :) Почти наверняка просто нужный объектник не линкуется.
[C++] Гы. Ну я думал, человек хотя бы понимает что делает 04.09.03 16:45
Автор: amirul <Serge> Статус: The Elderman
И лично у меня в начале освоения C/CPP были случаи когда я подключал один и тот же хедер и из кода C и из кода CPP, причем объявления не были защищены условным extern "C". Вот и написал первое что пришло в голову
[C++] Если есть iostream, то это скорее всего CPP 04.09.03 13:36
Автор: Fantom Статус: Незарегистрированный пользователь
Нет не помогло хотя ошибки поменялись на следующие:
[Linker Error] Unresolved external '_fmakeword' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\CGI3\UNIT1.OBJ
[Linker Error] Unresolved external '_plustospace' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\CGI3\UNIT1.OBJ
[Linker Error] Unresolved external '_unescape_url' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\CGI3\UNIT1.OBJ
[Linker Error] Unresolved external '_makeword' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\CGI3\UNIT1.OBJ
---
[C++] А ты уверен, что эти функции у тебя *определены* 04.09.03 14:27
Автор: amirul <Serge> Статус: The Elderman
Потому как то, что ты привел, это всего лишьобъявление