Я поискал это в гуглах и обнаружил, что вы используете
extern "C" {
#include "header.h"
}
Чтобы включить библиотеку C в библиотеку C ++ ... однако, когда я это делаю. Программа на C ++, кажется, улавливает все мои #defines и определения структур, но ни одно из объявлений функций не оставляет мне неопределенной ссылки на `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 ++. Дайте мне знать, если у вас есть какие-либо мысли о том, как это исправить. Спасибо.