我有一个库和一个使用库的控制台应用程序。该库有一个包含源文件和头文件的文件夹。如何在Visual Studio项目中定义相对路径?
我的项目位于子/内部目录中,但是我想包含的库目录位于父目录/上目录中。
我的项目目录:
H:\Gmail_04\gsasl-1.0\lib\libgsaslMain
包括文件的位置:
H:\Gmail_04\gsasl-1.0\src
如何使用路径相对于项目目录,以包括在父/上一级目录文件夹?
我有一个库和一个使用库的控制台应用程序。该库有一个包含源文件和头文件的文件夹。如何在Visual Studio项目中定义相对路径?
我的项目位于子/内部目录中,但是我想包含的库目录位于父目录/上目录中。
我的项目目录:
H:\Gmail_04\gsasl-1.0\lib\libgsaslMain
包括文件的位置:
H:\Gmail_04\gsasl-1.0\src
如何使用路径相对于项目目录,以包括在父/上一级目录文件夹?
如果我得到你的权利,你需要..\..\src
而是使用相对路径的,你也可以使用VS的预定义宏来实现这一目标。
$(ProjectDir)
指向您的.vcproj
文件的目录,$(SolutionDir)
是.sln
文件的目录。
您打开一个项目时获得可用宏的列表,请访问
属性→配置属性→ C/C++ →一般
并击中了三个点:
在即将出现的对话框中,点击宏查看Studio预定义的宏(请参阅MSDN它们的含义):
您可以通过键入$(MACRO_NAME)
使用宏(注意$
和轮括号中)。
我使用了一个语法像这样前:
$(ProjectDir)..\headers
或
..\headers
正如其他人指出,起始目录为您的项目文件中(vcproj
或vcxproj
) ,而不是你的主代码所在的位置。
它似乎在VS2013更新3中再次正常工作,不确定U2和U1。 – iFreilicht
不应该($ ProjectDir)是$(ProjectDir)? –
默认情况下,您定义的所有路径都是相对的。问题是:相对于什么?有几种选择: 1.指定一个文件或一个没有任何东西的路径。例如:“mylib.lib”。在这种情况下,将在输出目录处搜索该文件。 但是,如果添加“.. \”,路径将根据.sln文件所在的实际路径计算。 请注意,在诸如$(SolutionDir)之类的宏之后,不需要添加反斜杠“\”。只需使用$(SolutionDir)mylibdir \ mylib.lib。 如果您无法使用它,请从记事本外部打开项目文件并检查它。
我试过这个......但是它说找不到包含在这个文件夹中的文件。但是当我给出完整的路径时,它工作正常。 –
也许项目目录不是你认为的那样?也许这是更深的一步? – MByD
如果是这种情况,那我该怎么办?如果你对项目目录是正确的,那么路径应该是什么? –