C&C++搭建环境——微软IDE:Visual Studio
2017-11-23 23:01
513 查看
下载安装
界面设置
安装插件
新建工程
新建工程项目
添加工程源码
设置工程头文件
编译与运行项目
改变工程文件输出位置
编译库文件
编译静态库
编译动态库
改变库文件输出位置
静态库的lib与动态库的lib对比
库文件的引用
添加库的头文件
解决方案内直接引用工程
工程配置引用库文件
添加库目录
动态库的引用
调试模式设置环境变量
运行模式设置环境变量
此款IDE在windows桌面平台非常好用,集合了编译器连接器和调试器,支持git扩展。更重要的是,社区版面对个人和开源项目是免费的,如下所示,一下简称VS。
授权方式是安装完Visual Studio登录微软账号授权即可,如下所示。
安装完后登录微软账号授权即可使用如下所示。
工具—>选项—>键盘
项目编译,全编译如下所示。
工具—>扩展与更新,搜索tomato,如下所示
如下所示,这是一个git+MinGW搭建的windows项目
新建的项目放置在源代码文件夹下,如下所示。
在git过滤中添加过滤Debug文件
.gitignore
将源码加入工程中,按照现有的工程结构分类,如下所示。
1、VS对GCC的标识符不支持,如下所示,不支持_attribute_ 机制
修改方法:
使用以下对齐方式
2、VS需要更高的安全函数,如下所示,GCC下使用sprintf编译没有问题,但用到VS2017就会报错,提示使用更安全的sprintf_s。
修改方法:
1、 换成更安全的sprintf_s函数,但因为GCC不支持,在linux下无法使用,失去代码的可移植性。
2、 换成标准函数snprintf,VS和GCC都支持。
编译成功,代码在GCC也能使用,如下所示。
选择编译成静态库,如下所示。
同样删除示例文件和去掉预编译头文件,将源码以及头文件包含进来,如下所示。
添加完代码后的结构如下所示。
编译成功,如下所示。
也可以修改静态库的工程,输出更改成动态库,如下所示。
编译成功,如下所示。
源文件引用动态库进行编译时需要添加这个动态库的lib导入库,不然会导致无法连接解析库文件,如下所示。
为需要导出的函数添加VS的关键字描述:__declspec(dllimport)
通过宏_WIN32控制程序,使代码可以移植到Linux下。
编译成功,如下所示,输出路径已经改变。
之后过程输出的静态库和动态库都放到工程文件的输出文件夹中。
编译成功,如下所示。
或
若引用外部的dll,下章描述需要添加dll的环境。
编译成功,如下所示
若没有改变库文件的输出位置到解决方案指定的输出目录obj下,没有配置环境会导致程序找不到dll,如下所示。
VS调试器引用dll路径,如下所示。
输入形式:PATH=dll路径;
多个路径用英文的“;”间隔。
解决方法:
1、 直接将dll放到exe文件夹下。
2、 将dll路径加载到电脑的环境变量Path中。
应要程序去适应电脑,所以直接将dll放到exe执行程序下,运行如下所示。
直接运行exe程序需要在main函数末尾加上while(1);
界面设置
安装插件
新建工程
新建工程项目
添加工程源码
设置工程头文件
编译与运行项目
改变工程文件输出位置
编译库文件
编译静态库
编译动态库
改变库文件输出位置
静态库的lib与动态库的lib对比
库文件的引用
添加库的头文件
解决方案内直接引用工程
工程配置引用库文件
添加库目录
动态库的引用
调试模式设置环境变量
运行模式设置环境变量
此款IDE在windows桌面平台非常好用,集合了编译器连接器和调试器,支持git扩展。更重要的是,社区版面对个人和开源项目是免费的,如下所示,一下简称VS。
授权方式是安装完Visual Studio登录微软账号授权即可,如下所示。
下载安装
到微软官网下载安装包,根据实际需求安装,如下所示。安装完后登录微软账号授权即可使用如下所示。
界面设置
编译快捷键工具—>选项—>键盘
项目编译,全编译如下所示。
安装插件
安装tomato插件工具—>扩展与更新,搜索tomato,如下所示
新建工程
由于编译器的不同,需要新建VS工程,新建的工程可以在源工程文件目录下,不影响源代码。如下所示,这是一个git+MinGW搭建的windows项目
新建工程项目
打开VS,文件—>新建—>项目,如下所示。新建的项目放置在源代码文件夹下,如下所示。
添加工程源码
删除新建工程后的示例文件,记住在属性项目属性选项中删除预编译头文件,如下所示。在git过滤中添加过滤Debug文件
.gitignore
.vs/ Debug/ x64/
将源码加入工程中,按照现有的工程结构分类,如下所示。
设置工程头文件
在项目属性选项中,将源码的头文件包含进工程中,如下所示。编译与运行项目
代码由于编译器的不同需要进行修改。1、VS对GCC的标识符不支持,如下所示,不支持_attribute_ 机制
修改方法:
使用以下对齐方式
#pragma pack(4) //添加对齐方式 #pragma pack() //回复对齐状态
2、VS需要更高的安全函数,如下所示,GCC下使用sprintf编译没有问题,但用到VS2017就会报错,提示使用更安全的sprintf_s。
修改方法:
1、 换成更安全的sprintf_s函数,但因为GCC不支持,在linux下无法使用,失去代码的可移植性。
2、 换成标准函数snprintf,VS和GCC都支持。
编译成功,代码在GCC也能使用,如下所示。
改变工程文件输出位置
在工程属性—>常规中设置,如下所示编译库文件
VS2017编译的静态库后缀为.lib,动态库文件后缀为.dll。编译静态库
在整个解决方案中新建一个工程选择编译成静态库,如下所示。
同样删除示例文件和去掉预编译头文件,将源码以及头文件包含进来,如下所示。
添加完代码后的结构如下所示。
编译成功,如下所示。
编译动态库
方法和编译成静态库一样,新建的工程为动态库工程。也可以修改静态库的工程,输出更改成动态库,如下所示。
编译成功,如下所示。
源文件引用动态库进行编译时需要添加这个动态库的lib导入库,不然会导致无法连接解析库文件,如下所示。
为需要导出的函数添加VS的关键字描述:__declspec(dllimport)
#ifdef __cplusplus extern "C" { #endif #ifndef OBJ_DLL_API #ifdef _WIN32 #define OBJ_DLL_API __declspec(dllimport) #else #define OBJ_DLL_API #endif #endif OBJ_DLL_API int open_module1_func(void); OBJ_DLL_API int open_module2_func(void); #ifdef __cplusplus } #endif
通过宏_WIN32控制程序,使代码可以移植到Linux下。
编译成功,如下所示,输出路径已经改变。
改变库文件输出位置
在工程属性—>常规中设置,如下所示静态库的lib与动态库的lib对比
动态库的lib文件比静态库的文件小,如下所示。之后过程输出的静态库和动态库都放到工程文件的输出文件夹中。
库文件的引用
添加库的头文件
由于是在不同的项目中,因此需要引用库文件的工程添加库文件的头文件,如下所示。解决方案内直接引用工程
若库文件工程就在解决方案中,直接引用该项目工程即可,如下所示。编译成功,如下所示。
工程配置引用库文件
添加库目录
或
若引用外部的dll,下章描述需要添加dll的环境。
编译成功,如下所示
动态库的引用
以上示例适合引用静态库,动态库的引用需要多一步,将动态库dll的输出文件与工程文件exe的输出文件放置在同一级别文件夹下。调试模式设置环境变量
借助VS编译工具调试器,可以指定dll的路径,即dll放置在指定文件夹下,通过配置VS工具调试器的运行环境达到调用dll的效果。若没有改变库文件的输出位置到解决方案指定的输出目录obj下,没有配置环境会导致程序找不到dll,如下所示。
VS调试器引用dll路径,如下所示。
输入形式:PATH=dll路径;
多个路径用英文的“;”间隔。
运行模式设置环境变量
运行模式是指程序编译好后不依赖VS工程启动,直接运行exe文件,这时就用不了VS调试模式配置的环境变量,只能用电脑的环境变量或直接调用exe同级目录下的dll。没有配置环境会导致程序找不到dll,如下所示。解决方法:
1、 直接将dll放到exe文件夹下。
2、 将dll路径加载到电脑的环境变量Path中。
应要程序去适应电脑,所以直接将dll放到exe执行程序下,运行如下所示。
直接运行exe程序需要在main函数末尾加上while(1);
相关文章推荐
- C&C++搭建环境——图形界面IDE eclipse CDT
- C&C++搭建环境——命令行IDE:git+MinGW
- 使用CSDN-CODE&C-IDE搭建tomcat环境
- c++环境搭建&&第一个c++程序
- Linux上搭建C/C++IDE开发环境
- Eclipse C++环境搭建&解决控制台无输出问题
- Eclipse IDE for C/C++ Developers 开发环境搭建详解
- 使用 Eclipse IDE for C/C++ Developers 搭建 C++ 开发环境
- 【转帖】windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
- Cocos2d-x studio & Framework & IDE 可用环境搭建
- Ubuntu 14.04下搭建 Android 开发环境(2) -SDK&IDE
- Linux上搭建C/C++IDE开发环境1
- windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
- Linux上搭建C/C++IDE开发环境2
- c++学习笔记(1)——环境搭建、经典教程推荐及 Visual Studio 2005/2008中如何编译和运行C++程序
- windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
- Linux上搭建C/C++IDE开发环境
- eclipse下开发c&c++环境搭建
- 使用mingw在windows下搭建c/c++IDE环境