VS2017 completes the construction of static library
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
attributepage
// MathLib.h #pragma once int add(int x, int y); // MathLib.cpp #include "MathLib.h" int add(int x, int y) { return x + y; }
// Test.cpp #include "stdafx.h" #include "..\MathLib\MathLib.h" #include <iostream> int main() { std::cout << add(1, 2) << std::endl; return 0; }
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.
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】
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!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



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

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

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

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

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

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 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

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
