旗下导航:搜·么
当前位置:网站首页 > .Net教程 > 正文

VS2017完成静态库的搭建【C#.Net教程】,Visual,Studio,2017,静态库

作者:搜教程发布时间:2019-11-27分类:.Net教程浏览:42评论:0


导读:这篇文章主要为人人细致引见了VisualStudio2017写静态库的相干材料,具有肯定的参考价值,感兴趣的小伙伴们能够参考一下造轮子是一件风趣的事变,VS是一个壮大的东...
这篇文章主要为人人细致引见了Visual Studio2017写静态库的相干材料,具有肯定的参考价值,感兴趣的小伙伴们能够参考一下

造轮子是一件风趣的事变,VS是一个壮大的东西,能胜任超大规模的工程,然则讲真,对不那末大的项目设置起来不是那末友爱(网上的其他教程也一点都不友爱Orz)。这里就展现一下构建一个简朴的静态库的准确姿态。(趁便教一点原理

建立解决方案——许多人搞不清工程/项目Project和解决方案Solution的区分,在VS中,Project是基本的实行单元,一个Solution能够包括多个Project——我们的静态库就将会包括几个(.lib)Project和一个(.exe)Project用作测试。解决方案选win32 Console Application控制台。

范例选Static Library静态库,去掉Precompiled Header预编译头选项。

增加头文件和源文件。

源文件.cpp同理,今后应当是这个模样:

(注重,只增加.h文件而没有.cpp是不可的,如许一个工程编译不出来.lib库,今后你测试的时刻就会涌现" "xxx.lib": cannot open file specified"之类的报错别问我怎样晓得的Orz)

(另一种转头cannot open file specified的原因是.lib生成的位置不对,在这里看Solution Explorer->Properties属性页

->Output Direction输出目次

默许谁人是对的在\Debug目次下,谁晓得怎样会错)

然后就能够写代码了:

//  MathLib.h
#pragma once
int add(int x, int y);
//  MathLib.cpp
#include "MathLib.h"
int add(int x, int y) { return x + y; }

然后你须要一个Project来测试(追念开首说的,一个Solution能够有多个Project,它们都是实行单元(一会会再讲到怎样叫实行单元这是我本身造的观点)),在Solution Explorer内里为Solution到场新工程:

选控制台,把预编译头去掉和之前一样,如今我们得到了一个含有俩Projects的Solution了:

编写一段测试代码

//  Test.cpp

#include "stdafx.h"
#include "..\MathLib\MathLib.h"
#include <iostream>

int main()
{
  std::cout << add(1, 2) << std::endl;
  return 0;
}

如今须要为Test增加MathLib的援用,这一步现实的作用是,在指导IDE用cl编译器命令行编译的时刻,到场准确的链接选项(CSAPP有异常inspiring的解说,源文件#include了头文件今后只是为链接器引见了一堆未重定位的标记,它须要在库文件(静态库的话Linux是.a文件Windows是.lib)里找这些标记完成重定位),找到这些库很主要。在Solution Explorer内里Add Reference如图

VS很贴心肠把Solution里的Projects列进了备选项,选中即可。

此时Test的Reference里就有MathLib工程了。

下一步,为cl编译器增加include途径,也就是说,预编译期应当怎样找MathLib.h以完成标记的引入。在Test Properties属性页->C++->General->Additional Include Directaries附加包括途径,就是分外于规范库头文件目次的其他(自定义)头文件包括的目次,cl要去这些处所找MathLib.h。挑选增加MyStaticLibrary\MathLib这个目次OK。

这个时刻万事俱备,F5组建运转效果报了这么个错:

说.lib不是有用的win32运用不能运转。对呀我原本也没要运转它呀,但是VS怎样晓得Solution内里这么多Projects应当运转哪个?(想一想之前的实行单元明白到是什么意义了吧,每一个Project编译的效果都以为可实行)第一个增加的Project是MathLib所以VS默许去运转它的输出所以错了。想办法指导VS去运转Test的输出(Test.exe),Solution Explorer->MyStaticLibrary Properties属性页:

设单启动工程为Test,OK。

【相干引荐】

1. ASP免费视频教程

2. ASP教程

3. 李炎恢ASP基本视频教程

以上就是VS2017完成静态库的搭建的细致内容,更多请关注ki4网别的相干文章!

标签:VisualStudio2017静态库


欢迎 发表评论: