|
16 / 16 / 1
Регистрация: 15.03.2009
Сообщений: 94
|
||||||||||||||||
linked error28.09.2009, 00:19. Показов 3558. Ответов 28
Метки нет (Все метки)
только начал программу писать и сразу траблы. Но по порядку.
main.cpp:
[Linker error] undefined reference to `rusout(char*)' DMC компилирует, но при запуске говорит что это приложение не является win32. Прошу сразу заметить прога ещё далека от завершение и потому пусть вас не смущает её несколько неказистая конструкция. Собственно вопрос: Кто виноват и что делать? ЗЫ: заранее спасибо за игнор\ответ\мат в ответ...
0
|
||||||||||||||||
| 28.09.2009, 00:19 | |
|
Ответы с готовыми решениями:
28
Ошибка Linked Error в wxDev C++ [Linked Error] Unresolved External Linked List: error C2360: initialization of 'vp' is skipped by 'case' label |
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|||||||
| 28.09.2009, 00:24 | |||||||
|
G-Cat, ну наверное потому, что файл rusout.cpp не подключается никак. В файле newfunc.h используется объявление, но никакого описания функции rusout()
Замени
0
|
|||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 28.09.2009, 00:52 | |
|
И это... В качестве факультативного дополнения.
Файл newfunc.h вообще убрать может? А строчку #include "newfunc.h" закомменитить... Ибо к чему плодить лишние сущности? Простите мне моё невежество.
0
|
|
|
16 / 16 / 1
Регистрация: 15.03.2009
Сообщений: 94
|
|
| 28.09.2009, 01:43 [ТС] | |
|
подождите, ну не с бухты барахты же я всё ето написал...а по анологии, вот часть задания на следующую пару:
Создать многофайловый проект. Он должен включать в себя головной модуль, в котором должна будет вызвана функция, сама эта функция определена в другом файле, и должен быть создан *.h файл в котором будет объявлена эта функция. Не отрицаю, я мог что то и напутать в сделаном мною выше коде, но я даже в Дейтеле видел пример подобного написания. Правда там в головном модуле инициализировался класс и там не одна строчка, как у мня была, а поболее, но так же не было никакой привязки ко второму *.cpp файлу, ни в головном модуле, ни в основном файле....покрайне мере я не заметил
0
|
|
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
| 28.09.2009, 02:44 | |
|
А когда создаёшь проект,там должна быть опция "подключить файлы к проекту",может,всё дело в том,что линкер получает неправильную команду от среды разработки? Поищи там эту опцию добавить файлы.
0
|
|
|
16 / 16 / 1
Регистрация: 15.03.2009
Сообщений: 94
|
|
| 28.09.2009, 03:12 [ТС] | |
|
теперь постоянный Error 1 (компилятор Dev Cpp)
но мне вот больше нравится работать в DMC, но он не графический...не подскажете как в нём можно добавлять файлы...ну хотя бы на примере GCC...
0
|
|
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|||||||||||||
| 28.09.2009, 10:55 | |||||||||||||
![]() вообще должно быть как-то вот так: main.cpp
newfunc.h
0
|
|||||||||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 28.09.2009, 15:29 | |
|
Прошу предыдущего написавшего внести ясность в этот вопрос.
...Я так понимаю, подключать можно чуть-ли не какой угодно файл, хоть без расширения, лишь бы содержание правильно было написано по крайней мере DEV C++ работает так. Но остановимся на .cpp и .h То есть если в этом примере оформить подключаемый файл как .cpp, то тут один плюс- его можно отлаживать отдельно от исполняемой программы. То есть работай с ним и компилируй себе, ищи ошибки. Если всё будет правильно, тогда линкёр выдаст одну ошибку- что не может найти функцию main. После этого подключай файл к проекту и работай. А если оформить его с расширением .h, то у меня файлы с таким расширением по отдельности не компилируются, а только вкупе со всем проектом. То есть при каждой его отладке приходится подключать его ко всему проекту. Это нехорошо. Кто как для себя решил вопрос- файлы с каким расширением подключать? Может, стандарт какой есть на этот случай?
0
|
|
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
| 29.09.2009, 10:39 | |
|
kravam, подключаются как правило .h файлы. А вообще ты понимаешь смысл препроцессорной директивы #include ? Это эквивалентно ВСТАВИТЬ. То есть, перед обработкой, идет непосредственное вставление кода из подключаемого файла, в исходный листинг.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 29.09.2009, 11:39 | |
|
Конечно, понимаю. Это, кстати, много где описано. И это понять просто. Вставить это значит вставить и ничего более.
Я всего лишь выразил недоумение по поводу того, что везде наблюдаю подключаемые файлы *h, и нигде не наблюдаю *сpp (речь идёт об авторских файлах, а не поставляемых вместе со средой программирования). Ибо последние проще отлаживать потому, что их можно отлаживать отдельно от всего проекта. Добавлено через 14 минут В общем, думал я и пришёл к выводу, что нам ничего не запрещает подключать файлы *сpp. Или подключение *h стандарт? Тогда другое дело.
0
|
|
|
16 / 16 / 1
Регистрация: 15.03.2009
Сообщений: 94
|
|
| 29.09.2009, 12:08 [ТС] | |
|
http://ru.wikipedia.org/wiki/Заголовочный_файл
http://www.citforum.ru/programming/cpp/gl4.shtml Следующее эмпирическое правило относительно того, что следует, а что не следует помещать в заголовочные файлы, является не требованием языка, а просто предложением по разумному использованию аппарата #include. В заголовочном файле могут содержаться: Определения типов struct point { int x, y; } Описания функций extern int strlen(const char*); Определения inline-функций inline char get() { return *p++; } Описания данных extern int a; Определения констант const float pi = 3.141593 Перечисления enum bool { false, true }; Директивы include #include Определения макросов #define Case break;case Комментарии /* проверка на конец файла */ но никогда: Определения обычных функций char get() { return *p++; } Определения данных int a; Определения сложных константных объектов const tbl[] = { /* ... */ } ну а теперь кто нибудь мне всё таки объяснит как связать файлы main.cpp, func.h и func.cpp вместе, что бы небыло ошибок линковки?)))
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 29.09.2009, 12:33 | |
|
Это из википедии "В заголовочном файле модуля объявляется каждая функция, объект и тип данных, являющиеся частью интерфейса вызова модуля"
По второй ссылке я не нашёл ответа на свой вопрос. То есть там всё хорошо расписано, но не написано что нельзя подключать файлы *c (в моём случае *cpp) в программу. При чём: на протяжении всего примера автор активно использует как те, и другие, осознавая пользу от обоих. Но представляя главный файл, подключенных файлов *с мы там не наблюдаем. Без объяснений. *h подключаются, а *c нет. В общем, пишем сложные функции, нуждающиеся в отдельной компиляции в файлах *cpp и подключаем их. Тем более, что так и сказано: В заголовочных файлах не могут содержаться определения обычных функций. Всё.
1
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||||||||||||||||||||||
| 29.09.2009, 13:50 | ||||||||||||||||||||||
|
main.cpp
rusout.h
rusout.cpp
я из консоли (той, которая к VS прилагается - в ней переменные окружения и прочая байда задаётся) скомпилил
Проблема у Вас с функцией была. Она как int объявлена, а ничего не возвращала.
1
|
||||||||||||||||||||||
|
|
|||
| 29.09.2009, 14:34 | |||
|
Monte-Cristo, ну зачем ты людям неправильные советы даёшь. Исходники у него были написаны правильно. Только на компиляцию нужно подавать оба исходника *.cpp, а у него подаётся только один. Для подтверждения догадки можно внести в файл rusout.cpp синтаксическую ошибку. При компиляции на это место не будет ругаться (потому что файл не попадает в компиляцию). #pragma, в 5-м посте написал, что нужно делать
Добавлено через 49 секунд Добавлено через 1 минуту
1
|
|||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|||||||
| 29.09.2009, 14:55 | |||||||
1
|
|||||||
|
|
||
| 29.09.2009, 15:03 | ||
|
1
|
||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||
| 29.09.2009, 15:20 | ||
А по сути - да, видимо, просто компилирует ТС свою програмку неправильно...
1
|
||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||
| 29.09.2009, 16:20 | ||
|
А ошибаются люди, чтоб другие их поправляли, а не говорили, что и так сойдёт...
1
|
||
|
|
|||
| 29.09.2009, 16:26 | |||
|
1
|
|||
| 29.09.2009, 16:26 | |
|
Помогаю со студенческими работами здесь
20
C-style Linked List Linked List описание Linked List класс
Проверить программу с linked list Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|