我正在尝试构建我的应用程序C++代替C for my MIPS based embedded device。首先,我遇到了一个链接问题,您可以看到here https://stackoverflow.com/q/8952690/1162154。此问题已解决,我可以成功构建我的应用程序。在我的代码中,我使用malloc内存分配函数,但是当我调用这个函数时,我得到"Segment Fault"信息。我更换了malloc with new运算符,但结果是相同的。欲了解更多信息,请参阅以下代码:
C++
C
MIPS based embedded device
malloc
"Segment Fault"
new
int main(int argc, char** argv) { char* str = (char*)malloc(10 * sizeof(char)); //or char* str = new char[10]; strcpy(str, "Hello"); return 0; }
当执行第 3 行时malloc函数调用,"Segment Fault"屏幕上出现消息。如果我使用mipsel-elf-gcc代替mipsel-elf-g++,我没有这个问题。
mipsel-elf-gcc
mipsel-elf-g++
这里有什么问题吗?
你写道你的目标平台是ARMv7处理器,但你的交叉编译器是mipsel编译器。 您应该下载 ARM 的工具链。 Mentor Graphics 的 Sourcery Lite 工具链非常好。
例如,您可以尝试使用以下命令编译您的程序ARM-2011.03-41 https://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2.