![]() |
|
|
![]()
|
|
| zim22 |
|
||||||||||||||||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: нет Всего: 69 |
Создаю проект, состоящий из 3 файлов, описаных ниже.
Затем Build Solution нажимаю и получаю ошибку линковки:
Если же компилировать и линковать через командную строку, то exe-файл создаётся успешно.
или одной строкой:
Если же линковать два .obj файла вместе, то будет вышеупомянутая ошибка:
Можете объяснить, что происходит? Это ограничение IDE-среды?
Это сообщение отредактировал(а) zim22 - 17.7.2009, 12:12 |
||||||||||||||||
|
|||||||||||||||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 6 Всего: 50 |
??? Добавлено через 44 секунды В хидере. |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: нет Всего: 69 |
||||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 6 Всего: 50 |
Покаж весь код
|
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: нет Всего: 69 |
я его показал. в первом же сообщении. весь проект(код) состоит из 3 файлов 1) main.cpp 2) first.cpp 3) first.h Это сообщение отредактировал(а) zim22 - 17.7.2009, 12:10 |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 6 Всего: 50 |
У меня твои исходники скопилились.
|
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: нет Всего: 69 |
весело... какая студия? скомпилились или слинковались? на выходе exe файл получился? как компилил? IDE/консоль? |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 6 Всего: 50 |
||||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 6 Всего: 50 |
VS 2008, скомпилилось и слинковалось, получил ехе, компилил IDE.
Присоединённый файл ( Кол-во скачиваний: 3 )
test.zip 2,31 Kb |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: нет Всего: 69 |
ты не правильно компилил. нужно было в проект включить все файлы. а не один main.cpp Присоединённый файл ( Кол-во скачиваний: 2 )
cpp_link.rar 3,54 Kb |
|||
|
||||
| AlexT84 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 10.7.2009 Репутация: 1 Всего: 1 |
Попробуй:
|
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 6 Всего: 50 |
|
|||
|
||||
| AlexT84 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 10.7.2009 Репутация: 1 Всего: 1 |
А не, не получится, у тебя же функция конфликтует, а не структура
перенеси int first::mem_fun() { return 5; } в first.cpp. Компилятор, когда находит инклуд копирует содержимое файла вместо инклуда. Потом компилит 2 obj файла (для main.cpp и first.cpp) в которых есть этот метод, попавший в них из first.h. Линкер, при попытке собрать чего либо из получившихся obj, находит там одинаковые методы и выдаёт ошибку. Это сообщение отредактировал(а) AlexT84 - 17.7.2009, 12:47 |
|||
|
||||
| mrbrooks |
|
||||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
zim22, вынеси
в first.cpp Добавлено через 1 минуту и 38 секунд либо
|
||||
|
|||||
| zim22 |
|
||||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: нет Всего: 69 |
Alca, mrbrooks, я знаю, что так заработает без проблем. Но прикол как раз в том, чтобы слинковалось так, как у меня в файлах. Т.е. функция-член должна быть определена в h-файле, вне класса. *** в общем я понял, почему в консоли линкуется, а в IDE - нет. (озарение пришло, когда отошёл от компа IDE пыталась собрать(слинковать) все объектные файлы. Но обламывалась, т.к. и в first.cpp (first.obj) и в main.cpp(main.obj) была определена одна и таже фукнция. а в консоли я непрвильно собирал нужно было так:
и тогда и в консоли возникла бы ошибка. Это сообщение отредактировал(а) zim22 - 17.7.2009, 12:54 |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |