需要使用到的命令是DUMPBIN,需要在VS的Developer Powershell环境中才能使用
DUMPBIN有很多参数可以使用(比如/ARCHIVEMEMBERS)
经典链接错误:unresolved external symbol
以下的代码将一个目录下的所有lib文件的内容都输出出来,在Link找不到符号的时候,可以通过这个方法确认lib文件里面是不是确实没有对应的符号,排除一部分问题(如果lib里面确实没有,那就是需要link其他的lib,或者代码调用了不该调用的函数,找一下函数调用在哪里)
import subprocess,os,sys def main(): path = sys.argv[1] fileList = os.listdir(path) for fileName in fileList: if fileName.endswith('.lib'): command = "DUMPBIN /ARCHIVEMEMBERS \"%s\""%(os.path.join(path,fileName)) output = subprocess.run(["powershell","-Command",command], capture_output=True) print(output) if __name__=='__main__': main()