visual studio(VS2015)路径和工程属性设置
VS 2015新建一个工程,右键属性,打开**工程属性页。
1.常规选项:
a)输出目录
输出目录就是*.exe,.ilk,.pdb文件所在目录:
(
S
o
l
u
t
i
o
n
D
i
r
)
(SolutionDir)
(SolutionDir)(Configuration)
其中:
$(SolutionDir)为解决方案所在目录,D:\MY_Projects\TestDLL1
$(Configuration)如果是debug模式则为Debug,如果是release模式就是Release。
b)中间目录
中间目录就是生成的临时文件目录,KaTeX parse error: Undefined control sequence: \的 at position 16: (Configuration)\̲的̲意思是临时文件放在当前工程目录…(TargetPath),表示目标输出文件的全路径名,所以一般情况下它代表的值就等于“输出目录”属性代表的值
(
S
o
l
u
t
i
o
n
D
i
r
)
(SolutionDir)
(SolutionDir)(Configuration)\。
b)工作目录
默认$(ProjectDir),表示工程文件目录。【工作目录】表示进行某项操作的目的目录,会随着OpenFileDialog、SaveFileDialog等对象所确定的目录而改变。
“工作目录”属性作用是程序运行后唯一识别的默认目录,是程序运行过程中默认读取的目录,代码中用GetCurrentDirectory之类的函数获取,工作后只认识这个目录。
3.C/C++选项
a)常规选项——附加包含目录:引用头文件(*.h)所在的路径
b)预处理器
如上图中,在这里,WIN32、_DEBUGE、_UNICODE等其实是一些宏定义,在这里写上这些,相当于在本工程所有的文件中都写上了:
#define WIN32
#define _DEBUG
#define _UNICODE
这样,就可以达到一个多一个同一个代码在不同的配置环境在编译的结果文件不一样,从而实现跨平台。比如,在VC中,因为要有的环境是UNICODE,有些则不是,同一份代码为了在两种环境下都可以用,那么就会有以下宏定义(其实这就是twhar.h中的代码):
#ifdef _UNICODE
typedef wchar_t TCHAR;
#define __T(x) L##x
#define _T(x) __T(x)
#else
#define __T(x) x
typedef char TCHAR;
#endif
那么,当你的环境中写了UNICODE时,这一段就会编译:
#define __T(x) L##x
#define _T(x) __T(x)
如果没有写UNICODE,那么上面这段就不编译,而是下面这段被编译:
#define __T(x) x
这样,只要你的字符串用了_T(“somechar”),那么,在有UNICODE的时候,就是L"somechar";在没有UNICODE在时候,就是它本身"somechar"了。
c)预编译头
不使用预编译头,如果使用容易出现各种错误。
4.链接器选项
a)常规——输出文件,默认值为:$(OutDir)$(ProjectName)${TargetExt}
T
a
r
g
e
t
E
x
t
一般为
.
e
x
e
文件也可能是
∗
.
d
l
l
文件,
{TargetExt}一般为.exe文件也可能是*.dll文件,
TargetExt一般为.exe文件也可能是∗.dll文件,(OutDir)就是配置属性-》常规下面的输出目录路径,本文中配置为:
(
S
o
l
u
t
i
o
n
D
i
r
)
(SolutionDir)
(SolutionDir)(Configuration)\。
注意:输出文件最好配置成根调试路径(调试–》命令参数的属性值)在一个目录。
b)常规——附加库目录为“…\lib”,它指的是引用第三方库lib文件所在目录:
c)高级——导入库,动态链接库项目生成的lib文件所在的目录。