Visual C++ 编译链接选项的设置
2009-07-26 20:56
253 查看
上一节说道,汇编语言的代码已经告一段落了,接下来我们将进入C++的世界了。但是Visual C++不是被设计用来开发操作系统的。假如我们用Visual C++设计一个程序,那么在默认情况下,它必须跑在Windows下。所以我们必须做一些工作使得我们的程序能够脱离Windows运行。 因此,为了达到这个目的,我们必须对Visual C++的编译选项做一些特殊的配置。
首先,我们不能链接 Visual C++的运行时库。应为VC的运行时库依赖于Windows下的几个动态链接库。换句话说,我们必须自己为C++ 创建一个运行时库。至少,这个运行时库要支持C++异常,C++静态对象的初始化等等。我们将在下一节讨论C++运行时库的问题。为了不让Visual C++链接标准的C++运行时库,我们需要进行如下图的设置:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/gemini_star/EntryImages/20090726/2.jpg)
另外,由于我们不使用标准的运行时库,所以我们必须自己制定程序的入口点,如下图:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/gemini_star/EntryImages/20090726/3.jpg)
同时,我们需要打开编译器内置函数,以便调用一些常用的函数,比如端口输入输出等等。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/gemini_star/EntryImages/20090726/1.jpg)
最后,我们需要调整一下编译器的编译参数,下图中圈出的这两个选项都需要有运行时库支持,所以我们禁用掉这些编译选项。这可以简化我们自己的运行时库设计。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/gemini_star/EntryImages/20090726/4.JPG)
完成了这些操作后,Visual C++生成出来的代码就脱离了Windows的平台。只要我们再为其补上一个运行时库,一切就全部Ready了。后面几节将将讲述Visual C++的运行时库设计,以及Visual C++的异常实现机制。
首先,我们不能链接 Visual C++的运行时库。应为VC的运行时库依赖于Windows下的几个动态链接库。换句话说,我们必须自己为C++ 创建一个运行时库。至少,这个运行时库要支持C++异常,C++静态对象的初始化等等。我们将在下一节讨论C++运行时库的问题。为了不让Visual C++链接标准的C++运行时库,我们需要进行如下图的设置:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/gemini_star/EntryImages/20090726/2.jpg)
另外,由于我们不使用标准的运行时库,所以我们必须自己制定程序的入口点,如下图:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/gemini_star/EntryImages/20090726/3.jpg)
同时,我们需要打开编译器内置函数,以便调用一些常用的函数,比如端口输入输出等等。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/gemini_star/EntryImages/20090726/1.jpg)
最后,我们需要调整一下编译器的编译参数,下图中圈出的这两个选项都需要有运行时库支持,所以我们禁用掉这些编译选项。这可以简化我们自己的运行时库设计。
完成了这些操作后,Visual C++生成出来的代码就脱离了Windows的平台。只要我们再为其补上一个运行时库,一切就全部Ready了。后面几节将将讲述Visual C++的运行时库设计,以及Visual C++的异常实现机制。
相关文章推荐
- MFC编译选项设置与MSVCRT链接版本的对应关系总结
- Visual C++(VC++6.0)编译器常用选项设置
- Xcode xcconfig文件 常用编译选项设置
- Eclipse 编译设置 C++11标准 编译选项
- Visual C++编译器常用选项设置
- [转]Visual C++编译器常用选项设置
- gcc编译选项-链接内建的zlib
- Visual C++ 工程文件显示红杠杠且编译或链接不过原因
- HP-UX机C应用程序编译和链接选项
- 由于编译和链接的设置而造成的LNK2001
- 无法启动链接服务器 "........" 的 OLE DB 访问接口 "SQLNCLI10" 的嵌套事务。由于 XACT_ABORT 选项已设置为 OFF,因此必须使用嵌套事务。
- 无法启动链接服务器 "XXXXXX" 的 OLE DB 访问接口 "MSDASQL" 的嵌套事务。由于 XACT_ABORT 选项已设置为 OFF,因此必须使用嵌套事务。
- Visual C++编译器常用选项设置
- Android开发实践:如何设置NDK的编译选项
- VC6.0编译选项 运行时库设置
- CMake 默认编译、链接选项
- VC编译常用设置选项
- 在linux中进行编译链接的一些选项
- cmake:设置编译选项的讲究(add_compile_options和CMAKE_CXX_FLAGS的区别)
- Sublime Text3中用一个编译配置文件同时设置Python2和Python3解释选项