Index: docs/component_build.md |
diff --git a/docs/component_build.md b/docs/component_build.md |
index 06341c21cd36e494134db3783d76e5ee184eb612..1de4e4d53e077d1065d6996300a7cc0c12c4155b 100644 |
--- a/docs/component_build.md |
+++ b/docs/component_build.md |
@@ -253,3 +253,16 @@ the object file might not be brought into the link. Even if it is brought in |
today, it might not be brought in due to completely unrelated changes in the |
future. The result will be undefined symbol errors from other components. Use |
source sets if your component is made up of more than one target. |
+ |
+### Exporting a symbol that is not linked in your component |
brettw
2017/02/09 21:58:44
I think the confusion you ran into is specific to
|
+ |
+If an exported symbols is not linked as part of its own component then it is |
+not exported by the generated shared library. Other components that expect to |
+see this symbol are not be able to find it which results in an undefined symbol |
+error: |
+ |
+ some_file.obj : error LNK2001: unresolved external symbol <some definition> |
+ |
+For example this can happen if you have a header-only class that is not used |
+inside the module itself. A simple fix in this case is to define the symbol in |
+its own .cpp file. |