1

Eclipse C/c++ cdt で「シンボル xxxx を解決できませんでした」というプログラムがあります。

サンプル ファイルは次のとおりです。

ヘッダー ファイル: s.h:

#ifndef S_H_
#define S_H_

typedef enum {
    MSG_ID_INVALID_TYPE = 0,
    #include "s0.h"
} msg_type;

#endif /* S_H_ */

上記のファイルには、以下に示すヘッダー ファイルが含まれています。

ヘッダファイルs0.h

MSG_ID_COMMAND1,
MSG_ID_COOMAND2,

メインファイルtest.c

/*
 * test.c
 *
 *  Created on: 2012-5-18
 *      Author: js
 */
#include "s.h"

int i = MSG_ID_COMMAND1;

main()
{
    print ("%d",i);
}

エクリプスは私に言う:Symbol MSG_ID_COMMAND1 could not be resolved

しかし、プログラムは vc2008 で問題ありません。

なんで?

// 答え: セス・カーネギー. i = MSG_ID_INVALID_TYPE を使用すれば問題ありません。

4

2 に答える 2

1

変化する

typedef enum {
    MSG_ID_INVALID_TYPE = 0,
    #include "s0.h"

typedef enum {
    MSG_ID_INVALID_TYPE = 0,
#include "s0.h"

一部のプリプロセッサは、左寄せされていないトークンを無視します。VSのものはそうではなく、明らかに日食のものはそうします。

于 2012-05-18T02:39:23.003 に答える
0

作成したスニペットは、print関数が存在せず、それを定義するためのインクルードがない ため、コンパイルされません

于 2012-05-18T02:38:02.110 に答える