問候。試圖研究亮度MPEG Layer-III編碼器 - 獲取「C++內置類型的重新聲明'布爾'」
我正在研究mpeg layer-III編碼適用於即將推出的項目的方式。我下載了Shine編碼器,因爲它被認爲是最簡單的編碼器。 http://www.mp3-tech.org/programmer/sources/shine.zip是鏈接。
我成功地將它們編譯在一個獨立的項目中,但我需要在QT項目中使用它們。
我在QT 中創建了新的空白控制檯項目,並添加了以前爲我成功編譯的所有文件(來自shine.zip的文件)。
這是我的main.cpp:
#include <QtCore/QCoreApplication>
#include "main.h"
int main(int argc, char *argv[])
{
// QCoreApplication a(argc, argv);
// return a.exec();
mainc(argc,argv);
}
這是main.h:
#ifndef MAIN_H
#define MAIN_H
#include "main.c"
#endif // MAIN_H
其他一切不變(我的意思是,沒有這兩個文件它成功地編譯和工作)
我現在在這部分出現錯誤
#ifndef bool
typedef unsigned char bool; <--- "redeclaration of C++ built-in type 'bool'"
#endif
在這裏沒有錯誤之前。從我所瞭解的一個cpp文件的存在使得所有的代碼編譯爲C++並且shine代碼是c,而不是C++ ...是否意味着我不能在使用QT類QCoreApplication的項目中使用c代碼?
謝謝!好的,我明白了,我應該做的是製作一個頭文件,我將其包含在我的main.cpp文件中,此頭文件應該執行此聲明,然後使用與此頭文件相同的名稱進行文件.c應包含實現,對?我的意思是,現在它爲我工作,但我不能確定我做對了... – Istrebitel 2010-10-19 06:37:58
@Istrebite:是的,這聽起來是對的。 – 2010-10-19 10:26:04