Undefined symbols for architecture x86_64


My application compiles just fine.
Within the IDE I change an IOSImageView to use another jpeg image stored in the project.
When I compile, I get this error:

[code]Linking Executable
Undefined symbols for architecture x86_64:

“__x_logodf.logodf%o%”, referenced from:
_vMain.vMain._CreateControls0%%o<vMain.vMain> in vMain.o
ld: symbol(s) not found for architecture x86_64[/code]

I wonder if someone can explain what this error message means ?

If I revert to the previous image (also jpeg stored in the project),I can compile without problem.

Thanks !

@Olivier Colard — This error may mean that:

  1. You use a function that is not (or no longer) available for 64-bit builds, or that the function you use somewhere uses an incompatible function.
  2. You may need to clear the Xojo’s cache (goto to the Xojo preferences, select the Building tab and press Clear)
  3. You may need to reinstall Xojo as a whole (it might happen)
  4. You should roll on the floor screaming. It usually doesn’t work, but it can help! :slight_smile:
  1. The jpeg contains errors (use png where you can)

I have seen this - especially with JPEG images exported from Photoshop CC with no resolution values assigned identifying the pixel resolution (72dpi, 144dpi, 300dpi, etc.).

Moving to PNG resolved it.

Merci Stphane.
Thanks Derk, Tim. Jpeg was maybe the problem, converting to png didn’t solve it, maybe jpeg errors are converted to png.

I have the same issue sometimes.

Workaround: Delete the picture (jpg or png) from the Xojo project. Save the project then quit Xojo.
Reopen the project, import the picture again, and it should work.

Thanks Jeremie.
Clearing the cache was enough but better have multiple workarounds.