I started out developing on C. I know what gcc is, libgcc, and so on . I've done Windows/.NET development for years, and now I am playing with an iphone.
I understand that it's possible to compile apps on the iphone itself.
Wanted to start with a hello,world. I have openssh on the phone, and am connected from the Windows machine via putty.exe.
using Cydia to install GCC, it tells me "Cannot Comply".
The post I cited 开发者_JS百科above says I may need fake-libgcc. Why? What's fake about it, and why do I need it? If this is a pre-req for gcc, why doesn't the GCC package in Cydia install it automatically?
I just barely got this figured out myself, and since Google doesn't seem to have any recent and sufficient information, I'll go ahead and explain what I've found out even though this question is rather old.
The quick of it is this, gcc needs to see libgcc installed. I installed fake-gcc from here and it let me install gcc, and it appears to be running just fine, however, it still needs the headers. Here is a walkthrough that should help get the appropriate header files so you can get it to work.
As for why this all is, this is what I've been able to gather from searching through Google for a little while. Let me just start by saying, this is pretty much pure speculation, and if someone points me to a more correct reference, I'll gladly update this.
It appears that up through version 2.0 of the toolchain, libgcc was installable through Cydia to provide the basic libraries for gcc. However, since version 3.0, these libraries are (maybe?) now built in by default, so installing libgcc again through Cydia broke things. But as gcc has it as a dependency, it can't be installed until it sees libgcc somewhere.
That's where fake-libgcc comes in. It registers itself as that package, but doesn't really do anything besides that.
精彩评论