目录
1.生产并放置静态库文件
1.生成.lib文件
- 打开QtCreator,创建一个C++ Library项目
- 确定好项目名称和路径,点击下一步
- 选择构建系统之后点击下一步
- 选择生成库的类型,我们编译静态库就选择Static…,类名就输入你的控件的名称(无关紧要)
- 选择控件时就选择你控件支持的版本,为了库对不同环境支持更好可以都勾上,选择后点击下一步,再点击完成。
- 创建好项目之后后附带头文件和源文件,可以把他Delete删除掉(因为一般是把写好的代码添加进项目而不是直接在这个项目里面写)
- 然后把我们写好的代码的头文件和源文件复制到项目所在的目录
- 右击,选择添加现有文件
- 添加完之后你可能发现代码提示一些本来正确的include语句提示找不到文件,这是因为我们之前选择模块没选择到相应模块,需要修改pro文件
- 配置好了就可以开始构建项目了。选择构建使用的套件和构建的版本。
强调:这儿选择的构建版本很重要,一定要记住你此时构建的是Debug还是release,因为后面使用时如果版本不对则会报错,后文有报错的情况展示 - 出现绿色就是编译完成了,我们可以在生成的构建文件夹里看见.lib文件
2.将头文件和.lib文件添加到Qt套件的include目录和库文件目录中。
先找到include目录
例如:我生成的是Qt 5.14.2 msvc套件的Debug版本静态库,这个include目录就是Qt>5.14.2>msvc2017_64>include
然后把编译用到的头文件和生成的.lib静态库文件粘贴进去即可
这时生成的库文件的名称是刚才项目的名称,我们可以修改到和头文件一样的名称。
2.在VS中使用自定义的控件
-
首先创建好一个Qt项目(当然也可以是你自己已经写好的项目,此处我做测试),需要借助Qt VS Tools,此处不赘述。
此时我就已经可以将模块中的头文件添加进项目,但还不够,我们还需要在项目设置中将头文件所在目录显式地告诉VS。
进入:项目–>属性–>C/C+±->常规–>附加包含目录,将刚才的自定义目录添加进去。
注意:属性页面左上角有个配置,可以选择此时配置的是Debug还是Release,这个必须和刚才编译时的版本相同!!!
-
此时VS还不知道库文件在哪,需要我们告诉他。进入:项目–>属性–>链接器–>常规–>附加库目录,添加我们刚才自定义的那个文件夹
接着进入:输入一栏,把需要的库文件的名添加到“附加依赖库”中,然后点击确定
-
到此为止,项目配置就完成了,我们可以像使用Qt自带的控件那样在项目中声明并使用控件了。
3. 报错的可能原因提示
按照上面的方法一步一步走是没有问题的,但是你可能会出现疏忽。
- 报错1:error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”…
原因:大概率是:编译库与VS运行的版本不匹配,例如你可能编译的Release,但是VS运行的项目是Debug,修改其中一个到匹配即可。如果无法解决可参看这篇博客。 - 报错2:无法解析的符号…
原因:大概率是:你没有将头文件包含目录设置到项目的附加头文件目录一栏,前文提到过,可参看。