1. 程式人生 > >Windows下Cmake與VS聯合制作dll

Windows下Cmake與VS聯合制作dll

接觸大的專案,鋪天蓋地的程式碼總是會掩蓋了開發環境和工具的本質,上手之前,跑跑小的歷程有助於對專案的理解,提高效率。

  • 首先記錄一下 dll(動態連結庫)的生成過程:
    建立資料夾

Execise_CmakeDLLgitGtest

建立兩個子資料夾和文字檔案

build lib
CmakeLists.txt

CmakeLists.txt如下:

PROJECT(ALULIB)
ADD_SUBDIRECTORY(lib)

build是cmake的執行目錄,會在其中生成執行cmake指令後的一些檔案,執行之前是空的。
lib下存放準備生成dll的原始檔和檔案以及自己的CmakeLists.txt,分別如下:

ALU.cpp

#include "ALU.h"

int main()
{
    ALU alu1(4, 2);
    int get_add, get_sub, get_mul, get_div;
    get_add = alu1.add();
    get_sub = alu1.sub();
    get_mul = alu1.mul();
    get_div = alu1.div();
    cout << get_add << endl;
    cout << get_sub << endl;
    cout
<< get_mul << endl; cout << get_div << endl; system("Pause"); return 0; }

ALU.h

#pragma once
#define DllExport   __declspec( dllexport )//巨集定義
#ifndef ALU_H 
#define ALU_H 
#include <iostream> 
using namespace std;
class DllExport ALU //要生成dll必須加上這個巨集,否則會出錯,這也是我求教得到的,之前也不懂,特此指出注意一下,同時致謝!
{ public: ALU(int opr_a, int opr_b) { a = opr_a; b = opr_b; }; ~ALU() {}; int add(); int sub(); int mul(); int div(); private: int a; int b; }; #endif

CmakeLists.txt

SET(LIBALU_SRC ALU.cpp)
ADD_LIBRARY(ALU SHARED ${LIBALU_SRC}) #想得到動態庫,引數就是SHARED

檔案都準備好之後,在 cmd 中進入build資料夾下,執行

cmake . .

其中“. .”的意思是在其父目錄執行cmake,正好是主資料夾下。
執行結果:

這裡寫圖片描述

在build中生成了ALULIB.sln
這個檔案就是要用到的檔案,現在該visual studio 2015登場了!
直接雙擊開啟sln檔案,會直接在VS中啟動。

這裡寫圖片描述

右鍵ALL_BUILD,選擇build,開始編譯整個工程。
之後在build生成若干新的資料夾,也有一個lib,進入這個lib,Debug,發現了一個dll和lib。這裡需要說明,即使是生成dll動態連結庫檔案,也會同時產生一個lib靜態連線庫檔案,這個比專門生成靜態連線庫的lib要小。此處的lib是作為dll的入口的意思。
到此為止,DLL就製作完成了!

相關推薦

WindowsCmakeVS聯合dll

接觸大的專案,鋪天蓋地的程式碼總是會掩蓋了開發環境和工具的本質,上手之前,跑跑小的歷程有助於對專案的理解,提高效率。 首先記錄一下 dll(動態連結庫)的生成過程: 建立資料夾 Execise_CmakeDLLgitGtest 建立兩個子資料

WindowsCmakeVS聯合使用dll

步驟分為兩個部分Cmake部分和Visual Studio 部分 首先也是用cmake和建立工程。 建立Cmake的主目錄,在主目錄下建立子目錄build,src和文字檔案CmakeLists.txt,該文字檔案內容如下: CmakeLists.

VS開發】【OpenGL開發】OpenGL---Windows配置第一個OpenGL程式

面記錄一下Windows下配置OpenGL與我的第一個OpenGL程式。 第一步:選擇一個編譯環境 現在Windows系統的主流編譯環境有Visual Studio,Broland C++ Builder,Dev-C++等,它們都是支援OpenGL的。但這裡我選擇的是V

拉菜單的無js

菜單 align 水平 了吧 color oat ref list 重要 下拉菜單有許多種制作方法; 今天我們就做最簡單的一種; 話不多說先看html <body> <div class="menubox"> <ul> <l

nvm在windows安裝使用

切換 地址 ima 生成 tar nod install 選擇 txt 1、卸載本地已經安裝的所有node 2、nvm下載 下載地址https://github.com/coreybutler/nvm-windows ,選擇nvm-noinstall.zip 放在本地盤

WindowsNginxtomcat組合簡單使用

org 轉載 服務 ima 重啟 3.2 ati 如果 點擊 本文轉載自: http://www.cnblogs.com/naaoveGIS/ 1.背景 項目中瓦片資源越來越多,如果提高瓦片的訪問效率是一個需要解決的問題。這裏,我們考慮使用Nginx來代理靜態資源進行初步解

Windowspython2python3兼容設置

win force sin span window 新版 安裝python spa 改名 分別安裝python2與python3後,我想直接通過命令python2、pip2與python3、pip3區分: 分別進入python安裝目錄下,修改python.exe為pytho

什麽是響應式網站建設?傳統網站相比有什麽區別和不同?

16px 訪問 問題 接下來 網址 點贊 例如 沒有 正常 傳統網站建設可以說是互聯網剛剛興起時的產物,已經是過去式的代名詞,如今如果還有企業選擇這一類傳統建站服務的話,只能說企業領導們對互聯網這一塊不大關註,或沒有互聯網思維意識,甚至說沒有危機感,有網站和沒有網站關系不大

sphinx-for-chinese在windows安裝使用方法

用戶 同時 另一個 優化 exe tty 正常 計算機 clas sphinx-for-chinese的使用方法將使用 sphinx-for-chinese-2.2.1-dev-r4311-win32 為例子,目前我只找到最新的是這個版本2013.11.09發布。下載地址:

Python(pycharm)在windows路徑 ( ‘ / ‘ ‘ ‘ )的問題

文件 tps 所有 拼接 char 路徑 UNC argv 絕對路徑 1.0 首先了解Python中與pycharm,windows交互的模塊(這二個模塊可以避免出現路徑錯誤的問題)sys模塊 (側重Python與pycharm交互)提供的與路徑相關的方法有: __file

sphinx全文搜尋在windows安裝使用方法

sphinx-for-chinese的使用方法將使用 sphinx-for-chinese-2.2.1-dev-r4311-win32 為例子,目前我只找到最新的是這個版本2013.11.09釋出。 下載地址:http://sphinxsearchcn.github.io/ 下載完後解壓出來得到以下

Redis在windows安裝配置

加壓 tro 運行 png 卸載 star 修改 一個 level 一、安裝Redis 1. Redis官網下載地址:http://redis.io/download,下載相應版本的Redis,在運行中輸入cmd,然後把目錄指向解壓的Redis目錄。 2、啟動服務命

(轉)Redis在windows安裝配置

一、安裝Redis 1. Redis官網下載地址:http://redis.io/download,下載相應版本的Redis,在執行中輸入cmd,然後把目錄指向解壓的Redis目錄。 2、啟動服務命令 redis-server redis.windows.conf,出現下圖顯示錶示啟動成功。

WindowsMySQL的主從復

ica 二進制 進制 log ast 是不是 sql語句 _id program 首先需要的環境:我在本地安裝了兩個MySQL,分別是5.7和5.5的版本:安裝結束後如下: 1、復制原理:原理:在MySQL中有一種叫做bin的二進制日誌,這個日誌文件裏面記錄了關於此數據庫的

windowscmake編譯opencv3.4.1+opencv_contrib報錯

問題一: CMake Warning (dev) at cmake/common.cmake:5 (source_group): Syntax error in cmake code at C:/yumen/wxgisgdal-read-only/c

Git-入門教程(二)-Linux、MacOS和Windows安裝使用

0.摘要 本文主要介紹在Linux、MacOS和Windows三種系統下Git的安裝與使用,具體的Git命令和詳細使用方法在其他部落格中講解。 1.Linux下的安裝與使用 CentOS:使用yum安裝git yum install -y git -y引數:安裝

windowspythonanaconda的環境配置解決方案!

背景:            跟隨老師做工程設計,新手入坑! 正文:      首先,下載Python3安裝包,我這裡下載的是Anaconda3,這是什麼東西呢?Anaconda3裡面集成了很多Python需要用到的第三方科學計算庫,後續使用中不像單獨的Python

WindowsSonarQubeJenkins環境的配置使用

Windows下SonarQube與Jenkins環境的配置使用 首先放個SonarQube官方持續化整合測試環境架構圖 圖中展示了SonarQube自動化環境的整合,前文根據SonarQube官方的架構圖,搭建了SonarQube的程式碼檢測分析環境,本文則在此基礎上,記

WindowsKerasTensorflow環境配置

問題簡述: 最近隨著深度學習的火爆,很多人都想了解什麼是深度學習,怎樣容易上手,本文將介紹Tensorflow和Keras的環境配置。 配置詳情: 1.Python環境的配置: 由於Tensorflow目前在Windows上只支援Pyt

windowsPython2Python3共存的使用方法

安裝環境: Windows版本:Windows 10 家庭中文版 Python 2 版本:Python 2.7.11 Python 3 版本:Python 3.5.2 1.安裝Python Python官方下載地址:https://www.python.org/downl