[英]Chain of C libraries into C++
我有一个非常琐碎的问题,包括将C库链接到C ++主项目中。 我有C的经验,但这是我第一次用C ++进行编程。
该项目的结构是一个单独的文件夹,内部有:
主调用-> Mylib_1.h,调用-> My_lib2.h
//main.cpp
#include "Mylib_1.h"
//Mylib_1.h
#include "Mylib_2.h"
main包含Mylib_1和Mylib_2函数以及typedef结构
Mylib_1使用Mylib_2的typedef结构和函数
每个Mylib_x.h内部的所有内容都包装在外部“ C”之间,如下所示:
#ifndef __MYLIB_X_H
#define __MYLIB_X_H
#ifdef __cplusplus
extern "C" {
#endif
mycode
#ifdef __cplusplus
}
#endif
#endif
但是,当我尝试在Ubuntu 12.04 x64上使用eclipse kepler对其进行编译时,我得到:
Mylib_1.h错误:Mylib_2_type_t没有命名类型
main.cpp错误:在此作用域中未声明Mylib_2_function1
...
仅上述部分在eclipse中被标记为错误,标题看起来还不错。
此外,根据eclipse,__cplusplus标志在Mylib_2.h中为false,在Mylib_1.h中为true。
考虑到一些月食错误,我试图通过g ++(v4.6.3)手动构建项目,但是当我尝试将库.o与main.cpp链接时,我遇到了同样的问题。
看起来很愚蠢,但我不知道会是什么。 有什么建议吗?
谢谢
你检查过你的台词了吗
#ifndef __MYLIB_X_H
#define __MYLIB_X_H
两个文件(例如_ MYLIB 1 _H和_ MYLIB 2 _H)确实有什么不同?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.