Неопределенная ссылка при компиляции файлов C и C ++ с одинаковым заголовком - PullRequest
0 голосов
/ 11 декабря 2019

Если коротко, у меня есть код CPP и C, и мой код CPP пытается ссылаться на функции из кода C с помощью файла заголовка. Всякий раз, когда я запускаю команду make, я получаю ошибки «неопределенная ссылка». Вот мои коды:

cpp_code.cpp:

extern "C"{
    #include "header_code.h";
}

int main(){
    cout << "Hello" << endl;
    return 0;
}

c_code.c:

#include "header_code.h"

int main(){
    printf("Hello");
    return 0;
}

void initalize(){
    printf("Initilized");
}

header_code.h:

extern void initalize();

makefile:

CXX = g++
CXXFLAGS = -std=c++11
CC = gcc
DEPS = header_code.h
CFLAGS = -I
OBJS = cpp_code.o c_code.o

c: $(OBJS) 
    $(CXX) -o $@ $^ $(CXXFLAGS)

%.o : %.cpp
    $(CXX) -c $(CXXFLAGS) $<

%.o : %.c $(DEPS)
    $(CC) -c $(CFLAGS) $<

Всякий раз, когда я запускаю make, он всегда доставляет мне проблемы. Может кто-нибудь мне помочь? Спасибо, что уделили время на прочтение всего этого!

...