Linking errors for trivial IntroJucer iOS application


#1

Hi all,

Just diving into a "world of hurt" trying to port an application to iOS, so getting up to par on basic requirements I tried to create a GUI application via IntroJucer, but I get these linking errors :( :


Undefined symbols for architecture x86_64:
  "juce::JUCEApplicationBase::shutdownApp()", referenced from:
      -[JuceAppStartupDelegate applicationDidFinishLaunching:] in juce_gui_basics.o
  "juce::JUCEApplicationBase::initialiseApp()", referenced from:
      juce::JUCEApplication::initialiseApp() in juce_gui_basics.o
  "juce::JUCEApplicationBase::appWillTerminateByForce()", referenced from:
      -[JuceAppStartupDelegate applicationWillTerminate:] in juce_gui_basics.o
  "juce::JUCEApplicationBase::main(int, char const**)", referenced from:
      _main in Main.o
  "juce::JUCEApplicationBase::quit()", referenced from:
      JucerIOSTestApplication::systemRequestedQuit() in Main.o
      juce::JUCEApplication::systemRequestedQuit() in juce_gui_basics.o
  "juce::JUCEApplicationBase::JUCEApplicationBase()", referenced from:
      juce::JUCEApplication::JUCEApplication() in juce_gui_basics.o
  "juce::JUCEApplicationBase::~JUCEApplicationBase()", referenced from:
      juce::JUCEApplication::JUCEApplication() in juce_gui_basics.o
      juce::JUCEApplication::~JUCEApplication() in juce_gui_basics.o
  "typeinfo for juce::JUCEApplicationBase", referenced from:
      juce::JUCEApplication::getInstance() in juce_gui_basics.o
      typeinfo for juce::JUCEApplication in juce_gui_basics.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Building for the iPhone 6 simulator, and using JUCE of this revision: https://github.com/julianstorer/JUCE/commit/be9a2ff1bb6383c0e9f9419e1e3eb72434827d32

Help ?

/Rob

 


#2

By doing this in juce_ApplicationBase.cpp, I got it to link:

/* very easy way to support building Applier and lib on Darwin.iOS */

#if 1 //! JUCE_IOS
JUCEApplicationBase::JUCEApplicationBase()
    : appReturnValue (0),
      stillInitialising (true)
{
    jassert (isStandaloneApp() && appInstance == nullptr);
    appInstance = this;
}

But I feel it's not the right thing to do ?

 


#3

Ok, my bad, this was added by our internal build system.... sorry about the noise!!