Home Backend Development C#.Net Tutorial VS2017 completes the construction of static library

VS2017 completes the construction of static library

May 12, 2017 am 10:13 AM
studio visual

This article mainly introduces the relevant information of writing static libraries in Visual Studio 2017 in detail, which has certain reference value. Interested friends can refer to it

Making wheels is an interesting thing , VS is a powerful tool that is capable of very large-scale projects, but to be honest, it is not so friendly to configure smaller projects (other tutorials on the Internet are not Orz friendly at all). Here I show you the correct approach to building a simple static library. (By the way, teach me a little bit about creating solutions - many people can’t figure out the difference between Project and Solution. In VS, Project is the basic execution unit, and a Solution can contain multiple Projects. ——Our static library will contain several (.lib) Projects and one (.exe) Project for testing. The solution is to choose the win32 Console Application console. ##Select Static Library as the type and remove the Precompiled Header option.

#Add header files and source files. #The same goes for the source file .cpp. It should look like this afterwards:

(Note that it will not work to only add the .h file without the .cpp. Such a The project cannot compile the .lib library, and when you test it, errors such as ""xxx.lib": cannot open file specified" will appear. Don't ask me how I know Orz)

(Another kind The reason why I cannot open file specified is that the location where .lib is generated is wrong. Here, see Solution Explorer->Properties

attribute

page

##-> Output Direction output directory

The default one is in the \Debug directory, who knows how it could be wrong)

Then you can write the code:

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

Then you need a Project to test (recall what I said at the beginning, a Solution can have multiple Projects, they are all execution units (I will talk about how to call an execution unit later). This is a concept I created myself. )), add a new project to Solution in Solution Explorer:

Select the console and remove the precompiled header as before. Now we have a project containing two Projects Solution:

Write a test code

//  Test.cpp

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

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

Now you need to add a

reference to MathLib

for Test. The actual function of this step is , when guiding the IDE to compile with the cl compiler command line, add the correct link options (CSAPP has a very inspiring explanation. After the source file #includes the header file, it only introduces a bunch of unrelocated symbols to the linker. It You need to find these symbols in the library file (for static libraries,

Linux is a .a file and Windows is .lib) to complete the relocation). It is very important to find these libraries. Add Reference in Solution Explorer as shown in the figure

VS very considerately lists the Projects in Solution as options, just select it.

At this time, there is a MathLib project in the Reference of Test. Next step, add the include path for the cl compiler, that is, how to find MathLib.h during the pre-compilation period to complete the introduction of symbols. In the Test Properties property page->C++->General->Additional Include Directaries, the additional include paths are directories included in other (custom) header files in addition to the standard library header file directories. cl should go to these places to find MathLib .h. Select OK to add the MyStaticLibrary\MathLib directory.

Everything is ready at this time, and the F5 build and run result reported this error:

It says that .lib is not a valid win32 application and cannot run. Yes, I didn't want to run it originally, but how does VS know which one of so many Projects in Solution should be run? (Think about the previous execution unit and understand what it means. The compilation result of each Project is considered executable) The first added Project is MathLib, so VS runs its output by default, so it is wrong. Find a way to guide VS to run the output of Test (Test.exe), Solution Explorer->MyStaticLibrary Properties property page:

Set the single startup project to Test, OK.

【Related Recommendations】

1. ASP Free Video Tutorial

2. ASP Tutorial

3. Li Yanhui ASP basic video tutorial

The above is the detailed content of VS2017 completes the construction of static library. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Does Windows 11 provide support for VB6 applications? Does Windows 11 provide support for VB6 applications? May 30, 2023 am 08:31 AM

Windows 11 introduces more macOS-style UI elements. You get a redesigned taskbar with the Start menu in the center. Yes, you can change its position, but by default it will be placed in the center. The Control Center has also received some design tweaks. In the next update, support for Android apps will also come along with redesigned Notepad and Media Player. Although all these features make Windows 11 a nice upgrade over Windows 10, certain doubts are brewing in the minds of users. There is a segment of users and developers who are concerned about whether Windows 11 will support legacy applications and technologies, whether they are lagging behind or not. Since V

How to Fix VCRUNTIME140.dll Missing Error on Windows How to Fix VCRUNTIME140.dll Missing Error on Windows May 04, 2023 am 08:04 AM

The VCRUNTIME140.dllismissing error is a problem with your Visual C++ Redistributable file on Windows. You can use this tutorial to solve the problem. Windows applications and software require DLL files to run - without them, they may stop working entirely. For example, if you see a VCRUNTIME140.dllismissing error, this indicates that your PC is missing this file, preventing the application from launching. This may be due to unsuccessful installation of the application. It can even appear after running Windows updates. Thankfully, you can easily

4 Methods to fix CONCRT140.dll not found error 4 Methods to fix CONCRT140.dll not found error Apr 25, 2023 am 09:22 AM

So many users have reported that whenever they try to run the application, it throws an error message stating that code execution cannot continue because CONCRT140.dll was not found. When opening Adobe applications, Halo, ForzaHorizon5, etc., you may encounter CONCRT140.dll not found. So this is not an application-specific issue. Without the correct DLLs installed, applications will not work properly because their code depends on code written in these libraries. In this article, we will learn what CONCRT140.dll is and why it is missing, and how we can download it and fix the error. what is

Fix: Microsoft Visual C++ 2015 Redistributable Setup Failed error 0x80240017 Fix: Microsoft Visual C++ 2015 Redistributable Setup Failed error 0x80240017 Apr 18, 2023 pm 01:07 PM

Microsoft Visual C++ has become an integral part of the Windows operating system required to run most common applications. Now, some users have recently complained about issues they encountered while trying to install Visual C++ Redistributable Packages for 2015 or Microsoft Visual Studio Redistributable Packages for 2013. According to these users, the installer stopped midway and displayed "0x80240017 - Unspecified Error". There could be many reasons behind this failure. So don't do this

Visual Studio 2022 for Mac 17.0 comes with native macOS UI and Apple Silicon support Visual Studio 2022 for Mac 17.0 comes with native macOS UI and Apple Silicon support Apr 15, 2023 am 08:04 AM

Microsoft has announced the general release of Visual Studio 2022 for Mac 17.0. It brings huge changes, including a native macOS UI and support for Apple Silicon processors. According to the company, it has also released a new preview version that you can install side-by-side with this version. In older versions of Visual Studio for Mac, Microsoft used various UI techniques that made things look out of place. This update uses

How does android studio upload pictures to java server How does android studio upload pictures to java server Apr 28, 2023 pm 09:07 PM

1.build.gradle configuration (increase) dependencies{implementation'com.squareup.okhttp3:okhttp:4.9.0'implementation'org.conscrypt:conscrypt-android:2.5.1'} 2.AndroidManifest.xml configures permissions in the application Add android:usesCleartextTraffic="true&q

Microsoft releases Visual Studio 2022 17.3, here are the highlights Microsoft releases Visual Studio 2022 17.3, here are the highlights Apr 28, 2023 am 10:28 AM

Microsoft has released Visual Studio 202217.3. This update brings support for .NET Multiplatform Application UI (.NETMAUI), the ability to develop applications for Microsoft Teams, C++ improvements, Azure Container Apps, and improved Live Unit Testing. You can see the full list of new features by opening Help > What's New in Visual Studio. The main feature in this update is that .NETMAUI has graduated from preview support and is now available in Visual Studio 2022 on Windows

How to solve the problem that Android Studio cannot execute the main method of Java class How to solve the problem that Android Studio cannot execute the main method of Java class May 17, 2023 pm 04:43 PM

Environment androidstudio version: 3.6.1 gradle version: 5.6.4 gradle plug-in version: 3.6.1 Error prompt 11:41:35PM: Executingtask'TxtUtil.main()'...Executingtasks:[TxtUtil.main()]inproject/Users/ tinytongtong/Documents/workspace/as/self/BlogDemoFAILURE:Buildfailedwithanexception.*Wh

See all articles