Beta 7 is now out – see the links to the right for release notes and bug reporting. Beta 7 fixes a few fire drills with beta 6.  Good times!

Plugin Developers: you have to link against the libraries you use.  You cannot depend on X-Plane to provide those libraries for you!

Historically, due to poorly chosen project settings in X-Plane, X-Plane would “leak” libpng, libfreetype, and (in 10.10) libcurl.  Plugins that used these libraries without properly linking against them would still function: X-Plane would accidentally export these libraries, hiding the fact that the plugins accidentally didn’t link against them, and two wrongs made a right-for-now-until-something-changes.

If your plugin won’t run with X-Plane 10 beta 7 (32-bit or 64-bit), it means you’re not linking properly. The 64-bit build in particular does not share any static libraries.  So whatever library you need, go find the .a or .so or .dylib or .dll or .lib and link against it!  If you are on Unix or Mac, you can type

nm mac.xpl | grep "U "

To see a list of undefined symbols.  You should only see libpng in there if you linked against libpng.dylib or libpng.so.  If you are trying to link statically to your support libraries (and this is definitely the path I recommend) the only “U ” symbols you should see are XPLM and XPWidgets routines.

I will try to post additional SDK documentation on linker settings this week!

About Ben Supnik

Ben is a software engineer who works on X-Plane; he spends most of his days drinking coffee and swearing at the computer -- sometimes at the same time.