nick3 2008-1-21 16:08
【已解决】一个C++程序编译连接问题 望指教 谢谢
遇到一个不解的问题
就是 同样的代码 存为main.c中就可以顺利的编译连接通过 且正常运行
但是将文件名改为main.cpp后就出现问题了
在makefile的LIBS中加-lstdc++也没用
错误如下:
[quote]e:\pspsdk\pspdev\bin\..\lib\gcc\psp\4.1.2\..\..\..\..\psp\bin\ld.exe: warning: cannot find entry symbol module_start; defaulting to 0000000000000000[/quote]
然后后面会跟上一堆说是未定义的函数 其实这些函数都定义过的
这样使得我想用C++来写程序都不行啊:'(
有谁知道解决方案的吗?
[[i] 本帖最后由 nick3 于 2008-1-21 21:59 编辑 [/i]]
nick3 2008-1-21 21:58
嗯 的确是这个问题 呵呵
谢谢LS了
我竟然忘记了C和C++的语言链接性不一样:L
[[i] 本帖最后由 nick3 于 2008-1-21 22:00 编辑 [/i]]
诗诺比 2008-1-22 10:42
我一开始也碰到过....突然一下才反应过来的....LZ不用客气
=========
//我这有个问题
u8 a[] = "......"
void func1()
{
u8* p8;
u16 bt16;
u32 bt32;
p8 = a+1;
bt16 = *(u16*)p8;
bt32 = *(u32*)p8;
}
==========
这段程序在PC上什么问题也没有,到了PSP上就死机,
用的是*.c文件,gcc编译的,.cpp用g++还没试过....
问题就出在
bt16 = *(u16*)p8;
bt32 = *(u32*)p8;
这两句上,可为什么会死机,编译时未报错....
nick3 2008-1-22 15:35
你这段代码我也看不出问题来啊
我在程序中做过你这样类似的强制类型转换 但是还没死过机
我是将一个void型指针强转成u32型指针 再用*取值后赋给u32型变量
prolead 2008-11-5 23:47
试试bt16 = *(u16*)p8 & 0xff;