起因是因为文件太多导致 Argument Too Long的错误,所以决定把工程拆分成多个子模块,然后使用call import-module导入子模块。
但是修改完毕后,出现一大堆关于stl的链接错误。起初是以为stl使用出问题了,但是最终发现是静态库没有链接到,即:
任意静态库或者cpp没有编译并链接,都有可能引发stl的链接错误。
查了一个下午,也没有发现mk脚本哪里写错了,后来无意中试了下,把工程拷贝到磁盘根目录就可以正常编译链接了。经过一些列测试发现,链接错误是由于.a静态库访问权限被限制了,导致生成动态库时没有链接到.a的静态库(虽然静态库确实被正确生成了)。最终:
把工程文件重新拷贝一份(到任意目录),访问权限自动修改正确了,然后就可以正常编译链接了。