WDK7.6作为编译器,编译源码项目时,需要在源码相同目录下配置sources文件(没有任何后缀)。
本例运行环境:
- Windows7-64bit
- CPU: Intel i5 2400
- WDK(WindowsDriveKit)7.6
- Boost library version: 1.51.0
备注:开发中,将VS2010作为代码编辑器,WDK7.6作为编译器。
项目文件列表:
- HelloWorld.cpp
- source
HelloWorld.cpp源码:
#include <iostream>
#include <vector>
#include <string>
#include <boost/array.hpp>
#include <boost/lexical_cast.hpp>
#define outi(int_var) printf("%d", int_var)
#define outs(str) printf("%s", str)
#define newline() printf("\n")
void InvokeVector()
{
//invoke STL's vector
std::vector<std::string> vec;
vec.push_back("Entry ");
vec.push_back("of ");
vec.push_back("Vector");
vec.push_back("……\n");
//print vec
for (int i=0; i<vec.size(); i++) {
std::cout<<vec.at(i);
}
}
void invokeLexical_cast()
{
int i = boost::lexical_cast<int>("256");
outs("Cast string to int by Boost: ");
outi(i);
newline();
}
/*
This class to show people wdk can support an C plus plus project.
*/
class Human
{
public:
void singing()
{
outs("A man singing a beautiful song in the beach.\n");
}
};
int main()
{
outs("Entry of hw [16:36 Sep 12, 2012]\n");
// InvokeVector();
invokeLexical_cast();
Human h;
h.singing();
return 0;
}
sources文件配置:
TARGETTYPE=PROGRAM
TARGETNAME=helloworld
UMENTRY=main
USE_MSVCRT=1
#
# 指定使用STL和STL版本(默认为7.0)
# 使用此两句配置,可在源码中引入C++的<iostream>\<string>\
# 以及<vector>\<map>等STL库头文件
#
USE_STL=1
STL_VER=70
#
# my boost library root directory
#
BOOST_INC_PATH=E:\lib\boost_1_51_0
INCLUDES=$(BOOST_INC_PATH)
TARGETLIBS=$(SDK_LIB_PATH)\user32.lib
SOURCES=HelloWorld.cpp
UMTYPE=console
UMBASE=0x4000000
使用WDK的Free build environment 工具进入源码目录,运行build /wcbg编译:
path contains nonexistant c:\program files (x86)\amd app\bin\x86, removing
BUILD: Compile and Link for AMD64
BUILD: Loading e:\app\winddk\7600.16385.1\build.dat...
BUILD: Computing Include file dependencies:
BUILD: Start time: Wed Sep 12 16:36:55 2012
BUILD: Examining f:\quickdisk\working\project\wdk_projects\blog_sample directory
for files to compile.
f:\quickdisk\working\project\wdk_projects\blog_sample Auto-cleaning queue fo
r 'root:amd64fre' (1 of 1 file(s) removed)
Invalidating OACR warning log for 'root:amd64fre'
BUILD: Saving e:\app\winddk\7600.16385.1\build.dat...
BUILD: Compiling and Linking f:\quickdisk\working\project\wdk_projects\blog_samp
le directory
Configuring OACR for 'root:amd64fre' - <OACR on>
Compiling - helloworld.cpp
Linking Executable - objfre_win7_amd64\amd64\helloworld.exe
BUILD: Finish time: Wed Sep 12 16:36:57 2012
BUILD: Done
3 files compiled - 1 Warning - 52 LPS
1 executable built
可执行文件路径 .\objfre_win7_amd64\amd64\HelloWorld.exe
执行结果:
Entry of hw [16:36 Sep 12, 2012]
Cast string to int by Boost: 256
A man singing a beautiful song in the beach.