Linking Issues when restructuring components
Posted: Tue Nov 05, 2024 11:10 am
Hi, I have the following problems when restructuring my components:
I have a component A, which is local to a project (it is in the projects "components" folder).
Then I have a folder X on my PC, where all shared components are.
Component A uses multiple components from this folder X, let's call them B and C.
There is also a component D in this folder X, which is not used in the project, yet still included when compiling it (I have not fully understood why, but all components from the folder X seem to be compiled
with the project, regardless of whether they appear in some "(PRIV_)Requires" clause or not).
D requires (public) a component E (which is in folder X), which is also used in B and C (private requires).
When setting the Requires clause in D for component E to PRIV_Requires, linking of the project fails, since A cannot find functions from B and C anymore.
I tried debugging this for hours, but no result.
I have no idea why component D is even relevant in this project or why functions from B and C are influenced by the public requires of E...
Furthermore, when I include D as a managed component (via a git repository, which I want to replace the folder on my PC with), linking fails as well, with E being publically required.
If I then move D from the managed_components folder to the local components folder of the project, it works.
Can somebody give me a hint on how I can debug this issue?
I have a component A, which is local to a project (it is in the projects "components" folder).
Then I have a folder X on my PC, where all shared components are.
Component A uses multiple components from this folder X, let's call them B and C.
There is also a component D in this folder X, which is not used in the project, yet still included when compiling it (I have not fully understood why, but all components from the folder X seem to be compiled
with the project, regardless of whether they appear in some "(PRIV_)Requires" clause or not).
D requires (public) a component E (which is in folder X), which is also used in B and C (private requires).
When setting the Requires clause in D for component E to PRIV_Requires, linking of the project fails, since A cannot find functions from B and C anymore.
I tried debugging this for hours, but no result.
I have no idea why component D is even relevant in this project or why functions from B and C are influenced by the public requires of E...
Furthermore, when I include D as a managed component (via a git repository, which I want to replace the folder on my PC with), linking fails as well, with E being publically required.
If I then move D from the managed_components folder to the local components folder of the project, it works.
Can somebody give me a hint on how I can debug this issue?