未解析的外部符号:__cairo_path_fixed_stroke_to_traps

Posted

技术标签:

【中文标题】未解析的外部符号:__cairo_path_fixed_stroke_to_traps【英文标题】:Unresolved external symbol : __cairo_path_fixed_stroke_to_traps 【发布时间】:2015-10-17 20:43:50 【问题描述】:

我正在关注这个post 来构建和安装 cairo。

但是,我遇到了以下错误:

Error   277 error LNK2019: unresolved external symbol __cairo_path_fixed_stroke_to_traps referenced in function __cairo_traps_compositor_stroke C:\gtk_compilation\cairo\cairo-1.12.18\msvc\vs10\cairo-traps-compositor.obj cairo

安装指南说我需要关闭整个程序优化 我使用了/GL- 编译器标志,但仍然无法解决这个问题。

以下是C:\gtk_compilation\cairo\cairo-1.12.18\msvc\vs10\cairo-traps-compositor.c 文件的摘录:

cairo_int_status_t (*func) (const cairo_path_fixed_t    *path,
                const cairo_stroke_style_t  *stroke_style,
                const cairo_matrix_t    *ctm,
                const cairo_matrix_t    *ctm_inverse,
                double           tolerance,
                cairo_traps_t       *traps);
composite_traps_info_t info;
unsigned flags;

if (antialias == CAIRO_ANTIALIAS_BEST || antialias == CAIRO_ANTIALIAS_GOOD) 
        func = _cairo_path_fixed_stroke_polygon_to_traps;
        flags = 0;
     else 
        func = _cairo_path_fixed_stroke_to_traps; /* line#2183 */
        flags = need_bounded_clip (extents) & ~NEED_CLIP_SURFACE;
    

上述函数在cairoint.h中定义为:

cairo_private cairo_int_status_t
_cairo_path_fixed_stroke_to_traps (const cairo_path_fixed_t *path,
                   const cairo_stroke_style_t   *stroke_style,
                   const cairo_matrix_t *ctm,
                   const cairo_matrix_t *ctm_inverse,
                   double        tolerance,
                   cairo_traps_t    *traps);

cairo_private cairo_int_status_t
_cairo_path_fixed_stroke_polygon_to_traps (const cairo_path_fixed_t *path,
                       const cairo_stroke_style_t   *stroke_style,
                       const cairo_matrix_t *ctm,
                       const cairo_matrix_t *ctm_inverse,
                       double        tolerance,
                       cairo_traps_t    *traps);

有人可以为此提出解决方法吗?

【问题讨论】:

cairoint.h 不是函数定义的地方;这是它被宣布的地方。该函数在 cairo-path-stroke-traps.c 中定义。该文件是否正在编译?是否已关联? 谢谢你,我刚刚发现这个特定的文件不在项目源代码中。天哪,我之前为什么不检查这个? 【参考方案1】:

根据@andlabs 的评论,我发现文件 cairo-path-stroke-traps.c 未包含在 Visual Studio 项目源中。添加了这个并重建了解决方案 - 瞧!

【讨论】:

呵呵,cairo 的哪个发行版不包括该文件?这需要修复...... @andlabs:我从官方网站下载了压缩包,并从这里下载了 Visual Studio 项目文件here。项目文件有可能已经过时,但即便如此也很难错过@ 987654322@恕我直言。

以上是关于未解析的外部符号:__cairo_path_fixed_stroke_to_traps的主要内容,如果未能解决你的问题,请参考以下文章

错误 LNK2001:未解析的外部符号 LIBID_

未解析的外部符号_stricoll

未解析的外部符号__guard_fids_table [重复]

未解析的外部符号 PriorityQueue [关闭]

引用了未解析的外部符号 __imp__JNI_CreateJavaVM@12

未解析的外部符号“public:__thiscall Vector<int> [...]”