11

Using Visual Studio 2010, I'd like to specify a path in a #pragma comment(lib) relative to the cpp file including it.

I tried

#pragma comment(lib, __FILE__"\\..\\foo.lib")

in foo.cpp and it seems to work. However, this appears hackish to me.

Is there a less hackish way?

4

1 回答 1

11

不,如果这需要与 .cpp 文件相关,则不需要。这是非常不寻常的,您通常不能保证 .lib 部署在与使用该库的客户端源代码相关的目录中。尽管您当然可以给出规定这一点的安装说明。

通常的方法是只指定“foo.lib”并将链接器配置为使用 Additional Library Directories 设置搜索 .lib 文件的正确目录。这允许将 .lib 部署在任何地方,但库用户在设置项目时必须更新设置。否则这是一个非常正常的配置任务。与在 Additional Dependencies 设置中指定库并没有太大区别。

请记住,#pragma 通常最有助于帮助客户端程序员使用正确版本的静态链接库。您通常必须提供 4 个静态 .lib 版本、调试与发布以及 /MT 与 /MD。可能乘以您愿意支持的 VS 版本的数量。这很快就会变得毛茸茸的。_DLL、_DEBUG 和 _MSC_VER 预定义宏可帮助您生成正确的#pragma。

于 2013-04-29T16:00:52.367 回答