Я искал в Google это и обнаружил, что вы используете
extern "C" {
#include "header.h"
}
Чтобы включить библиотеку C в библиотеку C ++ ... однако, когда я делаю это. Кажется, что программа C ++ подхватывает все мои определения #defines и struct, но ни одно из объявлений функций не оставляет меня с неопределенной ссылкой на `function '.
Вот минимальное количество src, которое я использую.
json.h
//json.h
typedef struct json_object json_object;
struct json_object {
char key[15][50];
int size;
char value[15][50];
};
void json_parseText(char * text, struct json_object *jo);
test.cpp
//test.cpp
extern "C" {
#include "json.h"
}
int main() {
struct json_object jo;
char * keyVal;
char * text = "{ \"MsgType\": \"article\" }";
json_parseText(text, &jo);
}
g ++ дает следующее:
test.cpp:(.text+0x2c): undefined reference to `json_parseText'
обратите внимание, что он не жалуется на определение структуры, поэтому кажется, что он получил это из заголовочного файла. Но не функция. Это сбивает с толку меня. Я никогда раньше не использовал C ++, но для моей среды тестирования он должен быть в C ++. Дайте мне знать, если у вас есть мысли о том, как это исправить Спасибо.