iOS Build Environment Help Center

fatal error: 'cxxabi.h' file not found

append delete Dominik

Windows 10
Builder 3.58
iOS SDK 16.4

First of all thanks for making the iOS Builder! I have been using Unity Cloud Build for ages as a workaround to build iOS apps without a Mac, but directly building on my Windows Dev machine would be a dream!

I have not yet gotten it to compile completely, though. The UnityFramework compiles, but when compiling my Project it directly fails when compiling the first thing: Toolchain/extra/rdc.m with
J:\tools\iOSBuilder\Toolchain\extra\rdc.m(24,10): fatal error: 'cxxabi.h' file not found
Since this is part of the Toolchain, I thought I ask here. The cxxabi.h can be found on my machine here: J:\tools\iOSBuilder\SDK\usr\include\c++\v1\cxxabi.h

I tried adding that directory as a compiler flag include to the Main app:
-IJ:/tools/iOSBuilder/SDK/usr/include/c++/v1/cxxabi.h
But the result was the same.

Can you point me in the right direction? What can I try to solve the problem?

Here is the complete log: https://pmbaty.com/paste/?0b5c13703f1090f4#83hKrg2dTdbvsnJfz1WCWLtGaprLWqcZWgjntnK9kipb

Thank you!

Reply RSS

Replies

append delete #1. Pierre-Marie Baty

Hello

Thank you for reporting. It hints that something should be changed in the builder's logic.

You were close to the right workaround: the syntax for the -I flag is to supply a path, not a complete filename. So you would have to try this fiag:

% Extra compiler flags
-IJ:/tools/iOSBuilder/SDK/usr/include/c++/v1
%

in the "Main app (project_SF-DeepDive)" tab of the builder.

Another workaround is to disable the remote debug console. That "rdc.m" file is supplied by the toolchain and contain the hooks that redirect the app's standard I/O streams over the network, and it's compiled in only when the remote debug console is enabled.

I'll go and look for the cause of the problem. The usr/include/c++/v1 include path is implicit for C++, but not for C, and files ending in .m follow the C logic. That's probably the reason.

:: @Pierre-Marie Baty added on 13 Jul ’23 · 12:09

*edit* or rather, as a relative path:

% extra compiler flags
-I/usr/include/c++/v1
%

...since J:/tools/iOSBuilder/SDK is actually the target system base.

:: @Pierre-Marie Baty added on 13 Jul ’23 · 12:21

*edit 2*. Actually, the solution to the problem is even simpler.

That #include directive in rdc.m is redundant and can be deleted. Open that file (J:\tools\iOSBuilder\Toolchain\extra\rdc.m) with your favorite text editor and delete the line that says:

% rdc.m
#include <cxxabi.h> // for __cxa_demangle()
%

Since __cxa_demangle() is explicitly declared a few lines below, and that's the only function this file needs to know about, the #include directive is useless. Problem solved. :)

append delete #2. Dominik

Thank you so much for the quick response! I removed the include as you described and the build finishes successfully now. And the deployment to the iPad also worked!

So for now everything is perfect :) Thanks again for making iOS Development without a mac possible!

append delete #3. Pierre-Marie Baty

My pleasure :) Happy testing !

Reply

(Leave this as-is, it’s a trap!)

There is no need to “register”, just enter the same name + password of your choice every time.

Pro tip: Use markup to add links, quotes and more.

Moderators: Pierre-Marie Baty