C++ で BREW プラットフォーム用のアプリケーションを作成しています。私は Visual Studio を使用しており、Brew Simulator プロジェクトでは正常に動作します。しかし、ARM コンパイラのコンパイル中にエラーが発生しました。
エラー: L6218E: 未定義のシンボル main (kernel.o から参照)
私はいくつかの調査を行いましたが、次のことがわかりました。
そして、まだこのエラーがあります。とにかく AEEModGen.c にダミーの int main() を入れようとしました。コンパイル中にエラーはありませんが、もちろんアプリケーションは起動しません。
ダミーの main() は機能しません。これは、この RTL 機構をすべて引きずっているためであり、BREW 環境で正常に初期化することはできません。
自分の問題をどこから探し始めるのかわかりません。誰かこのケースを解決できますか?
AEEModGen.c に入れたコードは次のとおりです。
#ifndef AEE_SIMULATOR
#ifdef __cplusplus
extern "C"
{
#endif
void * __aeabi_vec_ctor_nocookie_nodtor( void* user_array,
void* (*constructor)(void*),
size_t element_size,
size_t element_count)
{
size_t ii = 0;
char *ptr = (char*) (user_array);
if ( constructor != NULL )
for( ; ii != element_count ; ii++, ptr += element_size )
constructor( ptr );
return user_array;
}
#ifdef __cplusplus
}
#endif
#endif