如题, 使用 VS2017 编译 ooc_test 项目(文章后有 Github 地址), 已经引入 ooc 相关头文件和 ooc.lib 静态链接库, 可能是使用姿势不对或者 VS 没配置好, 报了如下错误
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2001 无法解析的外部符号 String1Class ooc_test E:\projects\demo\ooc_test\vstudio\ooc_test.obj 1
想请教一下正确的使用方法是啥? ps: ooc 的资料比较少, 用的人估计不多。
GtType.h
#ifndef _GT_TYPE_H
#define _GT_TYPE_H
/************************************************************************/
/* */
/************************************************************************/
#ifdef __cplusplus
# define GT_C_START extern "C" {
# define GT_C_END }
#else
# define GT_C_START
# define GT_C_END
#endif
#endif
String1.h 头文件
#ifndef _STRING1_H
#define _STRING1_H
#include <ooc/ooc.h>
#include "GtType.h"
GT_C_START
DeclareClass(String1, Base);
GT_C_END
#endif // STRING1_H
impl_String1.h 头文件
#ifndef _IMPL_STRING1_H
#define _IMPL_STRING1_H
#include "String1.h"
#include "GtType.h"
GT_C_START
ClassMembers(String1, Base)
char *name;
EndOfClassMembers;
Virtuals(String1, Base)
EndOfVirtuals;
GT_C_END
#endif // !_IMPL_STRING1_H
主函数报无法解析外部符号 String1Class
#include "impl_String1.h"
#include <exception>
typedef struct String1Params
{
char *cstr;
int length;
} String1Params;
int main()
{
ooc_init_class(String1);
//String1Params p;
char s[6] = "hello";
/*p.cstr = s;
p.length = 5;*/
//String1 my_string = (String1)ooc_new(String1, (const void *)p);
return 0;
}
使用 VS2017, github 地址
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.