私はGoogleテストでEclipseを使用しています。私は以下のコードを書いたが、それはエラー "期待された主表現の前に 'led'"を示している。'led'の前にprimary-expressionが期待されます
LedDriverTest.cpp
#include "C:\googletest-master\googletest\include\gtest\gtest.h"
#include "LedDriver.h"
TEST(LedDriverTest, LedInitial){
LedDriver led;
EXPECT_EQ(0x00, led.getLedStatus());
}
LedDriver.h
#ifndef LEDDRIVER_H_
#define LEDDRIVER_H_
namespace LedDriver {
class LedDriver {
public:
LedDriver();
virtual ~LedDriver();
unsigned char getLedStatus();
private:
unsigned char status;
};
} /* namespace LedDriver */
#endif /* LEDDRIVER_H_ */
LedDriver.cpp
#include "LedDriver.h"
namespace LedDriver {
LedDriver::LedDriver() {
status = 0x00;
}
LedDriver::~LedDriver() {
}
unsigned char LedDriver::getLedStatus(){
return status;
}
} /* namespace LedDriver */
"LedDriver.h" と:
コードは、次の通りであります"LedDriver.cpp"は同じプロジェクト "LedDriver" "LedDriverTest.cpp"は "LedDriverTest"という名前の別のプロジェクトにあります。 GCCコンパイラの "LedDriverTest"プロジェクトのインクルードパスは "LedDriver"プロジェクトに設定されています。
何が問題なのか、どうすれば解決できるのか教えてください。
'LedDriver'名前空間の' TEST'機能はありますか?そうでない場合は、 'LedDriver :: LedDriver led'(または:' using namespace LedDriver'または: 'LedDriver :: LedDriver'を使用して)のように、その内部の型を完全修飾する必要があります。 – szczurcio
'LedDriver :: LedDriver led;'を試してください。 – JimmyB
「名前空間LedDriverを使用して」を追加すると、「LedDriver」への参照が「あいまいです」というエラーが表示されました。私は 'LedDriver ::'を追加しようとしましたが、 'LedDriver :: LedDriver :: LedDriver() 'への未定義の参照が現れました。 – hiroaki