我在Linux上遇到了一个奇怪的构建问题,并且想知道这是怎么发生的,因为它似乎不可能。
我的项目是一个静态库'libMyLib.a',由一个源文件'MyClass.cpp'组成。它是用CMake和gcc工具链构建的。
使用'nm',我确定'MyClass.cpp.o'包含'MyClass'符号(即根据'nm'将其“定义为'V')。使用'ar',我确定'libMyLib.a'包含'MyClass.cpp.o'。
但是根据'nm','libCyLib.a'中的符号'MyClass'是'undefined'为'U'。它如何包含目标文件,但该目标文件中的符号是未定义的?