XXX 未定义的引用的分析

         最近在项目过程中,移植的时候编译器提示“XXX 未定义的引用”,一般是链接没有找到对应XXX的具体实现所报出来的问题。出现这个问题的原因,刚开始是以为没有将的相应的函数实现,但是从对应的文件中能够找到XXX的实现
       接下来,百度搜索了几篇文章,发现说有可能是链接过程中,生成的.o文件顺序不对导致的,但是我编译的文件不是属于静态编译的,因此和链接的顺序没有关系。
        由于cc 过后生成包含有XXX的.o文件,所以需要去check .o文件里面是否有XXX的符号存在,nm之后发现没有对应的符号,所以可以确定是包含XXX的对应文件没有编译。grep一下发现全局有俩个同名文件,其中有给文件包含有XXX。但是编译其在链接过程中没有连接到包含有XXX的.o,接下来只需要修改文件名或者别的修改方法避开同名文件。就可以正常链接了。

mark一下,避免忘记!

 

你可能感兴趣的:(Linux,C)