![]() |
C++ plus C project
Может кто знает, как создавать созместный C и C++ проект, т.е. проект который включает как С так и С++ исходные файлы. При попытке копмиляции выдаёт ошибку линковщика (ф-ции не найдены). Пробовал перед ф-циями, написанными на С, ставить __cdecl по аналогии с библиотечными файлами, но это у меня не заработало.
Хотелось бы узнать как можно более общее резение проблемы (работало на разных компиляторах и линковщиках). Хотя буду очень признателен за решение для среды MS Visual Studio (от 6.0) Дело в том, что на С++ перейти хочу, но многие ф-ции на С написаны (впринципе можно создавать копии с расширением cpp, но этого из-за возможной неразберихи делать не хочется). Заранее благодарен. |
при включении заголовочных файлов C в проект C++ нужно писать примерное так
extern "C" { #include "f1.h" ... } Тогда линковщик будет нормально видеть C функции. тоже самое можно делать при объявлении внешних C функций в проекте C++ extern "C" void MyFunk(); |
Лучше так обрамлять, тогда будет работать и для С и для С++
#ifdef __cplusplus extern "C" { #endif ... ... #ifdef __cplusplus } /*extern "C" */ #endif |
Цитата:
Можно попробовать создать файл MyC_Func.cpp в котором проинклюдировать все нужные *.c файлы |
| Часовой пояс GMT +4, время: 21:26. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.