【问题标题】:C++ POCO build errorC++ POCO 构建错误
【发布时间】:2016-02-02 10:54:19
【问题描述】:

我正在尝试在 Visual Studio 2008 上的现有 Windows CE 项目中使用 POCO C++ 库。

我已经使用提供的 .bat 文件编译了 POCO 库。我使用了名为build_CE_vs90.cmd 的那个,它成功生成了几个.lib 文件。

但是 POCO 库 (Foundation.h) 的头文件有一个编译指示可以自动链接正确的 .lib 文件:

#if defined(_MSC_VER)
    #if defined(POCO_DLL)
        #if defined(_DEBUG)
            #define POCO_LIB_SUFFIX "d.lib"
        #else
            #define POCO_LIB_SUFFIX ".lib"
        #endif
    #elif defined(_DLL)
        #if defined(_DEBUG)
            #define POCO_LIB_SUFFIX "mdd.lib"
        #else
            #define POCO_LIB_SUFFIX "md.lib"
        #endif
    #else
        #if defined(_DEBUG)
            #define POCO_LIB_SUFFIX "mtd.lib"
        #else
            #define POCO_LIB_SUFFIX "mt.lib"
        #endif
    #endif

    #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(Foundation_EXPORTS)
        #pragma comment(lib, "PocoFoundation" POCO_LIB_SUFFIX)
    #endif
#endif

问题是 POCO_LIB_SUFFIX 被定义为“mtd.lib”,而我在 .lib 文件所在的目录中没有“mtd”版本的 lib。我只有PocoFoundation.libPocoFoundationd.lib,没有PocoFoundationmtd.lib,因为找不到文件,导致链接出错。

我已经使用 :

编译我的项目
POCO_STATIC
POCO_NO_UNWINDOWS

我打开了构建 .bat 脚本,它确实包含传递给主构建文件的参数“static_mt”:

@echo off
buildwin 90 build static_mt both WinCE samples

我错过了什么?谢谢。

【问题讨论】:

    标签: c++ linker poco poco-libraries .lib


    【解决方案1】:

    您正在使用 DEBUG 配置编译您的项目,更改它并取消定义 POCO_STATIC(它是多线程构建),由于某种原因您编译了共享版本,这就是您拥有没有任何后缀的 .lib 文件的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-09
      • 1970-01-01
      • 2018-09-20
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      相关资源
      最近更新 更多