Компиляция C в проекте С++

Рейтинг: 0Ответов: 2Опубликовано: 02.02.2023

Как можно скомпилировать или интегрировать .c в c++ проект?

Ответы

▲ 4

Принцип - предварительная компиляция разных языков в объектный файл. И потом эти объектные файлы можно уже собрать линковщиком. Язык C++ ушёл чуток от Си и чтобы имена функций и принципы передачи аргументов могли связаться как-то с Си функциями нужно заголовочный файл объявить со знаком extern "C". Далее линковщик всё соберёт.

f.h

int Cfun( int ) ;

f.c

# include "f.h"
int Cfun( int i ){
  return i; 
}

g.hpp

int CPPfun( int ) ;

g.cpp

# include "g.hpp"
int CPPfun( int i ){
  return i; 
}

main.cpp

extern "C" {
# include "f.h"
}
# include "g.hpp"

int main(){
  int c = Cfun(0);
  int p = CPPfun(0);
}

Вот пример использования с компилятором gcc.

gcc -c f.c
g++ -c g.cpp main.cpp
g++ f.o g.o main.o -o main
▲ -1

Компилируй всё в объектные файлы, создай файл link.ld , что писать в интернете смотри, и линкуй всё через линковщик ld (команда тоже в интернете, ищи линковка c и c++), компонуй из объектника в исполняемый и готово!