Rumah pembangunan bahagian belakang Tutorial C#.Net VS2017完成静态库的搭建

VS2017完成静态库的搭建

May 12, 2017 am 10:13 AM
studio visual

这篇文章主要为大家详细介绍了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; }
Salin selepas log masuk

然后你需要一个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;
}
Salin selepas log masuk

现在需要为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基础视频教程

Atas ialah kandungan terperinci VS2017完成静态库的搭建. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Adakah Windows 11 menyediakan sokongan untuk aplikasi VB6? Adakah Windows 11 menyediakan sokongan untuk aplikasi VB6? May 30, 2023 am 08:31 AM

Windows 11 memperkenalkan lebih banyak elemen UI gaya macOS. Anda mendapat bar tugas yang direka bentuk semula dengan menu Mula di tengah. Ya, anda boleh menukar kedudukannya, tetapi secara lalai ia akan diletakkan di tengah. Pusat Kawalan juga telah menerima beberapa tweak reka bentuk. Dalam kemas kini seterusnya, sokongan untuk apl Android juga akan disertakan bersama Notepad dan Media Player yang direka bentuk semula. Walaupun semua ciri ini menjadikan Windows 11 peningkatan yang bagus berbanding Windows 10, keraguan tertentu timbul dalam fikiran pengguna. Terdapat segmen pengguna dan pembangun yang bimbang sama ada Windows 11 akan menyokong aplikasi dan teknologi warisan, sama ada mereka ketinggalan atau tidak. Sejak V

Bagaimana untuk Membetulkan Ralat Hilang VCRUNTIME140.dll pada Windows Bagaimana untuk Membetulkan Ralat Hilang VCRUNTIME140.dll pada Windows May 04, 2023 am 08:04 AM

Ralat VCRUNTIME140.dllismissing ialah masalah dengan fail Visual C++ Redistributable anda pada Windows. Anda boleh menggunakan tutorial ini untuk menyelesaikan masalah. Aplikasi dan perisian Windows memerlukan fail DLL untuk dijalankan - tanpanya, ia mungkin berhenti berfungsi sepenuhnya. Contohnya, jika anda melihat ralat VCRUNTIME140.dllismissing, ini menunjukkan bahawa PC anda kehilangan fail ini, menghalang aplikasi daripada dilancarkan. Ini mungkin disebabkan oleh pemasangan aplikasi yang tidak berjaya. Ia juga boleh muncul selepas menjalankan kemas kini Windows. Syukurlah, anda boleh dengan mudah

4 Kaedah untuk membetulkan ralat CONCRT140.dll tidak ditemui 4 Kaedah untuk membetulkan ralat CONCRT140.dll tidak ditemui Apr 25, 2023 am 09:22 AM

Begitu ramai pengguna telah melaporkan bahawa setiap kali mereka cuba menjalankan aplikasi, ia melemparkan mesej ralat yang menyatakan bahawa pelaksanaan kod tidak dapat diteruskan kerana CONCRT140.dll tidak ditemui. Apabila membuka aplikasi Adobe, Halo, ForzaHorizon5, dsb., anda mungkin menghadapi CONCRT140.dll tidak ditemui. Jadi ini bukan isu khusus aplikasi. Tanpa DLL yang betul dipasang, aplikasi tidak akan berfungsi dengan betul kerana kodnya bergantung pada kod yang ditulis dalam perpustakaan ini. Dalam artikel ini, kami akan mempelajari apa itu CONCRT140.dll dan mengapa ia hilang, dan bagaimana kami boleh memuat turunnya dan membetulkan ralat. apa yang

Betulkan: Ralat Gagal Persediaan Boleh Agih Semula Microsoft Visual C++ 2015 0x80240017 Betulkan: Ralat Gagal Persediaan Boleh Agih Semula Microsoft Visual C++ 2015 0x80240017 Apr 18, 2023 pm 01:07 PM

Microsoft Visual C++ telah menjadi sebahagian daripada sistem pengendalian Windows yang diperlukan untuk menjalankan kebanyakan aplikasi biasa. Kini, beberapa pengguna baru-baru ini mengadu tentang isu yang mereka hadapi semasa cuba memasang Pakej Boleh Agih Semula Visual C++ untuk 2015 atau Pakej Boleh Agih Semula Microsoft Visual Studio untuk 2013. Menurut pengguna ini, pemasang berhenti di tengah jalan dan memaparkan "0x80240017 - Ralat Tidak Ditentukan" Mungkin terdapat banyak sebab di sebalik kegagalan ini. Jadi jangan buat begini

Bagaimanakah studio android memuat naik imej ke pelayan java Bagaimanakah studio android memuat naik imej ke pelayan java Apr 28, 2023 pm 09:07 PM

1.build.gradle konfigurasi (meningkatkan) kebergantungan{implementation'com.squareup.okhttp3:okhttp:4.9.0'implementation'org.conscrypt:conscrypt-android:2.5.1'} 2.AndroidManifest.xml mengkonfigurasi kebenaran dalam aplikasi Tambah android:usesCleartextTraffic="true&q

Visual Studio 2022 untuk Mac 17.0 disertakan dengan UI macOS asli dan sokongan Apple Silicon Visual Studio 2022 untuk Mac 17.0 disertakan dengan UI macOS asli dan sokongan Apple Silicon Apr 15, 2023 am 08:04 AM

Microsoft telah mengumumkan keluaran umum Visual Studio 2022 untuk Mac 17.0. Ia membawa perubahan besar, termasuk UI macOS asli dan sokongan untuk pemproses Apple Silicon. Menurut syarikat itu, ia juga telah mengeluarkan versi pratonton baharu yang boleh anda pasang bersebelahan dengan versi ini. Dalam versi Visual Studio untuk Mac yang lebih lama, Microsoft menggunakan pelbagai teknik UI yang menjadikan perkara kelihatan tidak sesuai. Kemas kini ini menggunakan

Microsoft mengeluarkan Visual Studio 2022 17.3, berikut ialah sorotan Microsoft mengeluarkan Visual Studio 2022 17.3, berikut ialah sorotan Apr 28, 2023 am 10:28 AM

Microsoft telah mengeluarkan Visual Studio 202217.3. Kemas kini ini membawa sokongan untuk .NET Multiplatform Application UI (.NETMAUI), keupayaan untuk membangunkan aplikasi untuk Microsoft Teams, penambahbaikan C++, Azure Container Apps dan Ujian Unit Langsung yang dipertingkatkan. Anda boleh melihat senarai penuh ciri baharu dengan membuka Bantuan > Apa yang Baharu dalam Visual Studio. Ciri utama dalam kemas kini ini ialah .NETMAUI telah lulus daripada sokongan pratonton dan kini tersedia dalam Visual Studio 2022 pada Windows

Bagaimana untuk menyelesaikan masalah bahawa Android Studio tidak dapat melaksanakan kaedah utama kelas Java Bagaimana untuk menyelesaikan masalah bahawa Android Studio tidak dapat melaksanakan kaedah utama kelas Java May 17, 2023 pm 04:43 PM

Versi androidstudio persekitaran: 3.6.1 versi gradle: 5.6.4 versi pemalam gradle: 3.6.1 Gesaan ralat 11:41:35PM: Executingtask'TxtUtil.main()'...Executingtasks:[TxtUtil.main()] inproject/Users/ tinytongtong/Documents/workspace/as/self/BlogDemoFAILURE:Buildfailedwithanexception.*Wh

See all articles