创建库文件工程时,经常需要设置.lib文件的路径和.dll 文件。
假设一个解决方案对应多个项目,但它们共享一些库,可以在解决方案文件夹下分别添加两个文件夹lib和bin(其实也可以放在一起,这样更方便)
lib文件:
项目属性页-配置属性-常规-输出目录-$(SolutionDir)\lib\
dll文件:
项目属性页-配置属性-链接器-常规-输出文件-$(SolutionDir)\bin\$(ProjectName).dll
转载自:http://m.gsm-guard.net/skyofbitbit/p/4044652.html
VS2010设置目标文件(.dll/.exe)的输出路径和导入库文件(.lib)
默认情况下,目标文件和导入库文件的路径为Debug或Release,文件名为工程名。扩展名是.dll/.exe 和.lib。那么我们如何修改.dll/.exe和.lib输出路径和文件名呢?首先我们需要了解VS2010中几个宏名称的含义,以及如何在配置页面中更改它们?
宏名称含义 修改位置 $(OutDir) 目标文件的输出目录 配置属性-常规-输出目录$(TargetName) 目标文件的名称 配置属性-常规-目标名称$(TargetExt) 的扩展名目标文件配置属性-General-Target Extension$(ProjectName) 项目的名称可以直接在IDE的Solution explorer视图中修改
目标文件的路径和文件名由IDE中的配置属性-链接器-常规-输出文件的内容指定。默认情况下,它是$(OutDir)$(TargetName)$(TargetExt)。从上面的宏名称介绍我们可以知道,只要修改配置属性-常规-输出目录,就可以改变目标文件的输出路径。同时也可以直接修改配置属性-链接器-常规-输出文件。
导入库文件路径和文件名由IDE中配置属性-链接器-高级-导入库的内容指定。默认为空,在这种情况下,将采用目标文件路径和名称,扩展名为 .lib。所以我们可以直接修改配置属性-链接器-高级-导入库的内容来改变导入库文件的输出路径。
??
(转载)
1。新建一个Win32项目,选择Dll,项目名称为MyDll
2。添加头文件:testdll.h,内容如下
???内容如下: [cpp]查看plaincopyprint? 1. #ifndef TestDll_H_???
2。 #定义TestDll_H_???
3.???
?4。 #ifdef MYDLL_EXPORTS???
?5。 #define MYLIBDLL extern "C" _declspec(dllexport)????
6。 #别的???
7。 #define MYLIBDLL extern "C" _declspec(dllimport)????
8。 #endif???
?9.??? 10. 外部“C”??? 11.{?? 12.???? MYLIBDLL int Add(int plus1, int plus2);?? 13. };?? 14.#endif?? ? 3.添加源文件:testdll.cpp,内容如下:?
?[cpp] 查看普通复印件? 1.#include“stdafx.h”???
?2。 #include "testdll.h"???
?3。 #包括
4。使用命名空间 std
5.
6。 int Add(int plus1, int plus2)??
?7。 {??
?8.???? int add_result = plus1 + plus2;?
? 9.????返回add_result;??
?10。 }
4。选择编译类型为:Release(注意,我之前一直使用Debug模式时,会遇到各种错误,无法使用。为什么有知道的请赐教,不胜感激?)
5。编译并输出.lib和.dll文件。
6。将testdll.h、MyDll.lib、MyDll.dll这三个文件放在新建的目录libs下,并放在下一个工程的工程文件夹下(与MyDllDemo.sln同一个文件夹下)。 =================================================
1。创建一个新的 Win32 Console 项目并将其命名为 MyDllDemo
2。修改MyDllDemo.cpp
文件内容如下:
?[cpp] 查看普通复印件? 1.#include“stdafx.h”???
?2.???
3。 #包括
4。使用命名空间 std;??
5.???
6。 #include“testdll.h”???
7。 //#pragma comment(lib,"MyDll.lib")???
?8.???
9。 int main()??
10。 {?? 11.????整数a = 1;??
12.????整数 b = 2;?? 13.???? int c = 添加(a,b);?? 14.???? printf("%d + %d = % d\n",a,b,c);?? 15.??? 16.???? getchar();??
?17.????返回0;??
18。 }?? 3、配置头文件搜索路径:属性 -> C/C++ -> 常规 -> 其他包含目录 -> 输入libs的绝对目录,如D:\sonikk\project\c++\console32\MyDllDemo\libs
4。配置.lib文件搜索路径:properties -> Linker -> General -> Extra Library Directoryies -> 输入libs的绝对目录,如D:\sonikk\project\c++\console32\MyDllDemo\libs
?5。配置要导入的.lib文件(与代码中使用#pragma comment(lib,"MyDll.lib")语句效果一样):properties -> Linker -> Input -> Extralibrary Directoryies -> MyDll .lib
6。配置.dll文件搜索目录:将MyDll.lib与编译生成的exe一起放置在MyDllDemo项目的Debug目录下。好的~