我已经搜索了谷歌,并发现你使用了
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中.如果您对如何解决这个问题有任何想法,请告诉我.谢谢.