Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > С++ + С Resolving Externals


Автор: nerdy_weirdie 28.2.2008, 22:33
Создал WIN32 C++ консольный проект в VS2003. Нужно к этому делу прикрутить модуль написанный на C. Добавил C файлы к проекту, но при линковании возникает проблема: external символы не линкуются ни из C++ в C ни в обратном направлении. Как слинковать?

Автор: nerdy_weirdie 29.2.2008, 04:15
Разобрался.. да, ступил..
Странно, что никто не подсказал.. либо знающие настолько суровы?

Автор: JackYF 29.2.2008, 12:34
extern "C" { // ..поехали }

Неужели настолько поиск не помог? Проблема очень распространена.

Автор: nerdy_weirdie 29.2.2008, 13:55
Цитата

Неужели настолько поиск не помог?

С такими-то ключевыми словами гугл бесполезен smile 

Автор: Mayk 29.2.2008, 15:15
Цитата(nerdy_weirdie @  29.2.2008,  17:55 Найти цитируемый пост)
С такими-то ключевыми словами гугл бесполезен smile  

не верно.
http://www.google.ru/search?aq=f&complete=1&hl=ru&newwindow=1&q=linking+c+and+c%2B%2B&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=
ps. нашел с третьего захода. первые два запроса были "how to link c and c++" и "link c and c++"

Автор: nerdy_weirdie 1.3.2008, 15:55
До чего дошел прогресс smile 

Автор: nerdy_weirdie 17.3.2008, 04:58
А может, кто подскажет, как слинковать 2 проекта в одном солюшне:

В обоих используется CRT и при линковке возникают ошибки типа

1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _free already defined in libcmtd.lib(dbgheap.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _strchr already defined in libcmtd.lib(strchr.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _calloc already defined in libcmtd.lib(dbgheap.obj)
1>MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _strtol already defined in libcmtd.lib(strtol.obj)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)