2016-04-05 23 views
0

私はLinux(Ubuntu)の下で組み込みデバイス向けにQtを使ってコードを書いています。 グローバル変数宣言を含むヘッダファイルを内部に配置しました。 Linux上で私のプロジェクトをPC上でテストしたところ、すべてのことはOKです。私が組み込みシステムでプロジェクトを試してみると、いくつかの変数を初期化するのを忘れてしまったので、うまくいきません。私のPC上では、Qtは値を自動的に "0"に設定しています。値)。組み込みデバイスのグローバル変数を初期化するにはどうすればよいですか?

埋め込みに渡すときにグローバル変数が既に正しく初期化されているように、すべての変数を1ステップで初期化する方法はありますか?

+2

グローバル変数が初期化されるのはQt機能ではなく、C++機能です。投稿した内容から、埋め込みコンパイラが間違ったコードを生成するように見えます。バグレポートを更新してください。 – nwp

+0

どのコンパイラを使用していますか? nwpが示唆しているように、私はC++ではすべての静的記憶変数(グローバルなど)はデフォルトでゼロに初期化されるべきだと考えています。 –

答えて

0

いくつかのコードを表示できますか? グローバル変数を使用する場合は、C/C++ファイルでグローバル変数を定義し、ここで初期化する必要があります。ヘッダー内の宣言は、 "Hey!this one exist!"としか書かれていません。

+0

名前空間Ui { class ts400; }クラスTS400:公共QWidgetの{ Q_OBJECT公共: TS400(QWidgetの*親= 0)。 〜ts400(); quint8 MonoCutModeIndex; quint8 MonoCutModeIndexTemp; //これらのグローバル変数はすべて初期化する必要があります。もしそうでなければ、埋め込まれたものでランダムな値でそれらを見つけました。 – LittleSaints

+0

このコードはヘッダーにあります(グローバル変数を含む)?グローバル変数定義をcppファイルに入れましたか?ちなみに、C/C++では、変数が自動的に初期化されると仮定しないでください。 –

0

私がしたいことは、ヘッダーファイル内に作成するすべてのグローバル変数が "0"値で初期化されていることです。 。これにはメソッド、プラグマ、追加のC++ヘッダーがありますか?

関連する問題