[英]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.