RZマイコン基板(CEV-RZ/A1L) | 'kensa'プログラムをPleiades Kepler + MinGW GCCでビルド→失敗
CEV Linux SDK V1.00.00のセットアップフォルダ内にあった'samples'フォルダの'kensa'プログラムですが、
これまでLinux版Linaro ARM Linux GCC、Windows版Linaro ARM Linux GCC、Linux版x86 Linux GCCで
ビルドして来ましたが、今度は、Pleiades 4.3 Keplerに同梱されているMinGW GCCでビルドしてみました。
結果は、コンパイルエラーで中断してしまいました。(とはいえ想定していた可能性の範囲内ですが。)
..\webapp-src\app-src\sensor.c:35: error: `LOCK_SH' undeclared (first use in this function)
..\webapp-src\app-src\sensor.c:37: error: `LOCK_UN' undeclared (first use in this function)
..\webapp-src\app-src\sensor.c:102: error: `LOCK_SH' undeclared (first use in this function)
..\webapp-src\app-src\sensor.c:104: error: `LOCK_UN' undeclared (first use in this function)
..\webapp-src\app-src\sensor.c:127: error: `LOCK_SH' undeclared (first use in this function)
..\webapp-src\app-src\sensor.c:131: error: `LOCK_UN' undeclared (first use in this function)

調べてみると、LOCK_SHやLOCK_UNというシンボルは、Windows版Linaro ARM Linux GCCでは、以下の
ファイルに含まれるシンボルでした。
ファイル: arm-linux-gnueabihf\libc\usr\include\arm-linux-gnueabihf\sys\file.h
内容:
/* Operations for the `flock' call. */
#define LOCK_SH 1 /* Shared lock. */
#define LOCK_EX 2 /* Exclusive lock. */
#define LOCK_UN 8 /* Unlock. */
このシンボルがMinGW GCCには含まれていませんでした。後で、Cygwin GCCを試してみようと思います。
なお、プロジェクトは、MinGW GCCプロジェクトとして作成しました。

これまでLinux版Linaro ARM Linux GCC、Windows版Linaro ARM Linux GCC、Linux版x86 Linux GCCで
ビルドして来ましたが、今度は、Pleiades 4.3 Keplerに同梱されているMinGW GCCでビルドしてみました。
結果は、コンパイルエラーで中断してしまいました。(とはいえ想定していた可能性の範囲内ですが。)
..\webapp-src\app-src\sensor.c:35: error: `LOCK_SH' undeclared (first use in this function)
..\webapp-src\app-src\sensor.c:37: error: `LOCK_UN' undeclared (first use in this function)
..\webapp-src\app-src\sensor.c:102: error: `LOCK_SH' undeclared (first use in this function)
..\webapp-src\app-src\sensor.c:104: error: `LOCK_UN' undeclared (first use in this function)
..\webapp-src\app-src\sensor.c:127: error: `LOCK_SH' undeclared (first use in this function)
..\webapp-src\app-src\sensor.c:131: error: `LOCK_UN' undeclared (first use in this function)

調べてみると、LOCK_SHやLOCK_UNというシンボルは、Windows版Linaro ARM Linux GCCでは、以下の
ファイルに含まれるシンボルでした。
ファイル: arm-linux-gnueabihf\libc\usr\include\arm-linux-gnueabihf\sys\file.h
内容:
/* Operations for the `flock' call. */
#define LOCK_SH 1 /* Shared lock. */
#define LOCK_EX 2 /* Exclusive lock. */
#define LOCK_UN 8 /* Unlock. */
このシンボルがMinGW GCCには含まれていませんでした。後で、Cygwin GCCを試してみようと思います。
なお、プロジェクトは、MinGW GCCプロジェクトとして作成しました。

- 関連記事
-
- Win/Linuxクロス開発 | Linux版Eclipseを使えば事足りるのかもしれない?
- OSエミュレータ | WindowsバイナリをLinux上で実行するWineというソフトウェアを試してみた
- RZマイコン基板(CEV-RZ/A1L) | 'kensa'プログラムをPleiades Kepler + KPIT ARM-RZでビルド→失敗
- RZマイコン基板(CEV-RZ/A1L) | 'kensa'プログラムをPleiades Kepler + Visual C++でビルド→失敗
- RZマイコン基板(CEV-RZ/A1L) | Pleiades Keplerでソースコードをプロジェクト間で共有
- RZマイコン基板(CEV-RZ/A1L) | 'kensa'プログラムをPleiades Kepler + Cygwin GDBでデバッグ
- RZマイコン基板(CEV-RZ/A1L) | 'kensa'プログラムをPleiades Kepler + Cygwin GCCでビルド
- RZマイコン基板(CEV-RZ/A1L) | 'kensa'プログラムをPleiades Kepler + MinGW GCCでビルド→失敗
- Win/Linuxクロス開発 | Pleiades Kepler + VMware Player上のx86 Linux GDBでデバッグ
- Win/Linuxクロス開発 | Pleiades Kepler + VMware Player上のx86 Linux GCCでビルド
- RZマイコン基板(CEV-RZ/A1L) | Pleiades Kepler + Windows版Linaro ARM Linux GCCでビルド (3)
- RZマイコン基板(CEV-RZ/A1L) | Pleiades Kepler + Windows版Linaro ARM Linux GCCでビルド (2)
- RZマイコン基板(CEV-RZ/A1L) | Pleiades Kepler + Windows版Linaro ARM Linux GCCでビルド (1)
- RZマイコン基板(CEV-RZ/A1L) | Windows版Linaro ARM Linux GCCで'kensa'プログラムをビルド
- RZマイコン基板(CEV-RZ/A1L) | Windows版Linaro ARM Linux GCCを使えば事足りるのかも
2013/12/13 blog-entry-384 category: Pleiades & CrossGCC
| h o m e |