Maison  >  Article  >  développement back-end  >  VS2017 termine la construction de la bibliothèque statique

VS2017 termine la construction de la bibliothèque statique

Y2J
Y2Joriginal
2017-05-12 10:13:103889parcourir

Cet article présente principalement en détail les informations pertinentes sur l'écriture de bibliothèques statiques dans Visual Studio 2017. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

Construire des roues est une chose intéressante, VS est une chose intéressante. outil puissant capable de réaliser des projets à très grande échelle, mais pour être honnête, il n'est pas si convivial pour configurer des projets plus petits (d'autres tutoriels sur Internet ne sont pas du tout compatibles avec Orz). Ici, je vais vous montrer la bonne approche pour créer une bibliothèque statique simple. (Au fait, permettez-moi de vous en apprendre un peu plus sur la

Création de solutions - beaucoup de gens n'arrivent pas à comprendre la différence entre Projet et Solution. Dans VS, Projet est l'unité d'exécution de base, et une Solution peut contient plusieurs projets. ——Notre bibliothèque statique contiendra plusieurs projets (.lib) et un projet (.exe) pour les tests. La solution est

Sélectionnez la bibliothèque statique comme. le type, supprimez l'option d'en-tête précompilé Precompiled Header.

Ajoutez des fichiers d'en-tête et des fichiers source>Il en va de même pour le fichier source .cpp. >

(Notez que l'ajout uniquement du fichier .h sans le .cpp ne fonctionnera pas. Un tel projet ne peut pas compiler la bibliothèque .lib, et puis lorsque vous testez, des erreurs telles que ""xxx.lib : impossible d'ouvrir le fichier spécifié" apparaîtra. Ne me demandez pas comment je connais Orz)

(une autre raison pour laquelle je ne peux pas ouvrir le fichier spécifié est que l'emplacement généré .lib est incorrect. Ici, voir Explorateur de solutions->Propriétés

Propriétés

Page

-> 🎜>

Celui par défaut est dans le répertoire Debug, qui sait comment cela pourrait être faux) Ensuite, vous pouvez écrire le code :

Ensuite, vous avez besoin d'un projet pour test (rappelez-vous ce que j'ai dit au début, une Solution peut avoir plusieurs Projets, ce sont tous des unités d'exécution (je parlerai de la façon d'appeler une unité d'exécution plus tard). C'est ma propre création. Concept)), ajouter un nouveau projet vers la solution dans l'Explorateur de solutions :

Sélectionnez la console, supprimez l'en-tête précompilé et faites la même chose que précédemment. Nous avons maintenant un projet contenant deux projets Solution :

<.>

Écrivez un code de test

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

Vous devez maintenant ajouter une

référence

de MathLib à tester. Cette étape est en fait la fonction est de tester. ajoutez les options de lien correctes lorsque vous demandez à l'EDI de compiler à l'aide de la ligne de commande du compilateur cl (CSAPP a une explication très inspirante. Une fois que le fichier source #inclut le fichier d'en-tête, il introduit uniquement un tas de non-délocalisations dans l'éditeur de liens. Les symboles dont il a besoin pour retrouver ces symboles dans le fichier de bibliothèque (pour les bibliothèques statiques, Linux

est un fichier .a et Windows est .lib) pour terminer la relocalisation). Il est important de retrouver ces bibliothèques. Ajoutez une référence dans l'Explorateur de solutions comme indiqué dans la figure

VS répertorie très soigneusement les projets dans la solution comme alternatives, sélectionnez-le simplement.

//  Test.cpp

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

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

En ce moment, il y a un projet MathLib dans la Référence de Test. Étape suivante, ajoutez le chemin d'inclusion pour le compilateur cl, c'est-à-dire comment trouver MathLib.h pendant la période de pré-compilation pour terminer l'introduction des symboles. Dans la page de propriétés Propriétés du test ->C++->Général->Répertoires d'inclusion supplémentaires, les chemins d'inclusion supplémentaires sont des répertoires inclus dans d'autres fichiers d'en-tête (personnalisés) en plus des répertoires de fichiers d'en-tête de bibliothèque standard cl qui doivent se rendre à ces endroits. pour trouver MathLib .h. Sélectionnez OK pour ajouter le répertoire MyStaticLibraryMathLib.

Pour le moment, tout est prêt, mais le résultat de la construction et de l'exécution de F5 a signalé cette erreur :

Il indique que .lib n'est pas une application win32 valide et ne peut pas s'exécuter. Oui, je ne voulais pas l'exécuter à l'origine, mais comment VS sait-il lequel des nombreux projets de la solution doit être exécuté ? (Pensez à l'unité d'exécution précédente et comprenez ce que cela signifie. Le résultat de la compilation de chaque projet est considéré comme exécutable) Le premier projet ajouté est MathLib, donc VS exécute sa sortie par défaut, donc c'est faux. Trouvez un moyen de guider VS pour exécuter la sortie de Test (Test.exe), Explorateur de solutions -> Page de propriétés Propriétés MyStaticLibrary :

Définissez le projet de démarrage unique sur Test , D'ACCORD.

【Recommandations associées】

1. Tutoriel vidéo gratuit ASP

2. Tutoriel ASP

3. Tutoriel vidéo de base ASP de Li Yanhui

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn