不同构建环境的不同库路径

发布于 2024-12-29 16:59:18 字数 676 浏览 2 评论 0原文

我正在开发 UMDF 驱动程序。对于 32 位和 64 位版本,驱动程序需要不同的(版本)库。 我的 sources 文件中的 TARGETLIBS 属性看起来像这样,

TARGETLIBS=\
        $(SDK_LIB_PATH)\strsafe.lib     \
        $(SDK_LIB_PATH)\kernel32.lib    \
        $(SDK_LIB_PATH)\ole32.lib       \
        $(SDK_LIB_PATH)\oleaut32.lib    \
        $(SDK_LIB_PATH)\uuid.lib        \
...
        ..\otherlib\amd64\foo.lib \

但对于 x86 构建,foo.lib 的路径必须是 ..\otherlib\i386\foo.lib
显然,ddk 构建系统中有一些机制可以实现这一点,因为 $(SDK_LIB_PATH) 也根据构建架构指向不同的位置。但我无法找到有关此主题的文档。
如何在一个文件中为不同的构建类型设置不同的库路径?

I'm developing a UMDF-driver. The driver needs a different (build of a) library for 32 bit and 64 bit builds.
The TARGETLIBS property in my sources file looks like

TARGETLIBS=\
        $(SDK_LIB_PATH)\strsafe.lib     \
        $(SDK_LIB_PATH)\kernel32.lib    \
        $(SDK_LIB_PATH)\ole32.lib       \
        $(SDK_LIB_PATH)\oleaut32.lib    \
        $(SDK_LIB_PATH)\uuid.lib        \
...
        ..\otherlib\amd64\foo.lib \

but for a x86 build the path for foo.lib must be ..\otherlib\i386\foo.lib.
Obviously there is some mechanism for this in the ddk build system, since $(SDK_LIB_PATH) also points to different locations depending on the build architecture. But I'm unable to find documentation on this subject.
How do I set different library paths in one source file for different build types?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

So要识趣 2025-01-05 16:59:18

http://technet.microsoft.com/en-us/query/ff552910

由于此约定,TARGETLIBS 条目应按以下形式指定库名称:

<目标路径>\*\

其中 targetpath 与源文件中分配给 TARGETPATH 的值相同,library_name 是要链接到可执行文件的库的完整文件名。构建实用程序将星号 ( * ) 替换为目标平台类型

这对于我当前的问题来说绝对没问题。但如果有人可以提供更通用的解决方案,我会洗耳恭听......

http://technet.microsoft.com/en-us/query/ff552910

Because of this convention, TARGETLIBS entries should specify library names in the following form:

<targetpath>\*\<library_name>

where targetpath is identical to the value assigned to TARGETPATH in the Sources file, and library_name is the full file name of the library to be linked to the executable file. The Build utility replaces the asterisk ( * ) with the target platform type.

That's definitely ok for my current problem. But if someone can offer more general solution i'm all ears...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文