我遇到了一个BAMR(Beyond All My Recognition)错误,我有一个小的单线程应用程序,只需创建一个openGL上下文并绘制一些用于测试目的。它在Windows7和Ubuntu64中运行良好。这些天我将它移植到Linux armv7(arm-linux-gnuabihf),主机是ubuntu x64,gcc / g ++版本是4.6(arm-linux-gnuabihf),在这个应用程序之前我已经编译了几个小应用程序和运行良好。
每次运行此应用程序时都会打印以下错误:
/////////////////////
第1步
ld.so检测到不一致:dl-minimal.c:136:realloc:断言`ptr == alloc_last_block'失败!
/////////////////////
这是我的代码,看起来每次错误发生在if(..)子句之前?多奇怪啊!任何人都有任何想法?非常感谢!
HRESULT TestWorkloadBase::CreateGLWindow()
{
printf("Step 1");
if (m_bPrompt) //m_bPrompt has been initialized
{
printf("Step 2");
int ProcessId = GetProcessID();
printf("Process Id is %d Starting... Please press a key to continue.\n", ProcessId);
printf("Step 3");
std::cin.ignore();
}
printf("Step 4");
#if !defined(_WIN32)
if (getenv("DISPLAY") == NULL)
{
setenv("DISPLAY", ":0.0", 0);
}
...
}
每次都会打印“第1步”。