Hi,
I wanted to report what I think is a bug, but if I try to sign up for an account at gitlab.kitware.com I just get an error There was an error with the reCAPTCHA. Please solve the reCAPTCHA again.
. There is no reCAPTCHA anywhere and I can’t get it to appear. I’ve tried Safari and Chrome (both macOS) and disabled pop up blockers for the site but can’t get a reCAPTCHA.
In case it’s relevant here the bug is about missing symbols when linking to a chain of OBJECT libraries. I’ve put together a minimal failing example at Mark Grimes / CMakeObjectLibraryTest · GitLab. It’s basically the CMake lines copied from the documentation verbatim and it fails.
Thanks.
I’ve notified our admins about the reCAPTCHA.
As for the object library problem, the example is working exactly as the documentation describes. Your example fails to link main2
because it uses a symbol from obj
’s object files, but the documentation specifically says that those object files will not be included in the link:
Object Libraries may “link” to other object libraries to get usage requirements, but since they do not have a link step nothing is done with their object files…creates executable main2
with object files from main2.c
and obj2.c
.
The main2
example in the documentation is meant specifically to demonstrate this behavior, and goes on to say:
In other words, when Object Libraries appear in a target’s INTERFACE_LINK_LIBRARIES
property they will be treated as Interface Libraries
See my posts in CMake Issue 18090 for why transitive object libraries do not propagate their object files automatically.
Okay, thanks. I feel a little stupid now because it does state that in documentation I had read and thought I understood. I do feel like it’s such surprising behaviour (however justified) more attention could be brought to it in that section though. You need to carefully read through the whole section and trace through the dependencies of each example target to fully understand the importance of that sentence.
Regardless, it’s not a bug. Apologies for the noise.