其实有些简单的问题是很容易解决的,但类似于vtk、itk、opencv这种需要配置库文件等等的项目很容易报一些无从下手的错误,让新手一脸蒙逼,比如下面这种,我自己配置好多次也还是会遇到。
在错误列表里,显示一堆“无法解析的外部符号”,同时出错的文件是.obj链接文件,也就是源代码是没有语法错误的,这时候你双击这些错误也不会跳转到具体语句。
看后面可以看出,关于vtk我用到的很多函数都出了问题,这就说明配置项目的时候有问题。
解决方法:
1.点击左侧解决方案管理器下方的"属性管理器”(或者直接右击项目属性),然后双击图中2的位置。
2.弹出如下对话框:这个对话框是配置中用到的,但基本所有配置都不会讲这些配置有问题会出什么错。(相信看到这些所有人都会很眼熟,但很多莫名其妙的错误就是这些配置引起的)
一个是包含目录:这个指的是去哪里找vtk、itk的头文件。
一个是库目录:库目录是所有的lib文件,比如我打开我的vtk库目录,下图。(这个在配置的时候最好去你安装vtk的目录下找到这个文件夹,看看有没有.lib的文件,因为有很多Debug文件夹,里面有的是没有.lib的,那就说明配错了。)
在确定你配置的库目录下有很多.lib文件后,就可以下一步了。
这个目录设置好后只为了让我们去添加另一个东西
可以看到附加依赖项是很多.lib文件,如果你的项目这里没有关于vtk的.lib就会出现文章开始的报错,同时还有一点,这里的.lib是相对路径,原因就是上面配置了库目录的目录位置,所以系统就知道去那几个文件夹里去找.lib,如果那几个文件夹没有你在这里写的.lib就会说
而且这个报错会一个个出,一般我们配置会粘进来很多.lib,即使所有.lib都找不到,他每次只说找不到这一个,出现这个问题的时候说明,库目录配置错了。
当提示找不到文件时,你要进到vtk的目录下,看看是否有这个.lib文件,如果没有直接在附加依赖项中把这个删掉,很多配置从网上粘过来的时候,由于vtk版本的不同,导致.lib不完全相同,没有的直接去掉就好。
在附加依赖项配置时,也可以写绝对路径,这时候你库目录那里的配置就不重要了。
比如,在这个项目中,我是用cmake配置的项目,我打开附加依赖项发现关于vtk的库文件都是绝对路径的,cmake的好处就是省去上面配置的过程,用cmakelists.txt去把这些工作命令给电脑自动完成。