首页 > 解决方案 > 如何解决错误“o rule to make target”?

问题描述

当我尝试编译 Cartotype 的 Project Map 时弹出此错误,我按照 The Instruction on The Cartotype Documentation 进行操作,但此时我无法取得任何进展,请帮助!

:-1: error: No rule to make target 'G:/QT/Projects/cartotype-eval/CartoType-Public/src/apps/Maps/../../../../cartotype_windows_sdk_evaluation_5.10.7/CartoType/bin/15.0/x64/DebugDLL/libcartotyped.a', needed by 'debug/CartoTypeMaps.exe'.  Stop.

我的同事在 QT Linux - Ubuntu 上测试了相同的项目,并且运行顺利!

标签: c++qt

解决方案


我假设您正在使用 MinGW,因为 buildtool 正在寻找foo.a. 您只需查看该错误并了解其含义:缺少所需的库。在您提供该库之前,它不会构建。这是简单的部分。困难的部分是,根据 SDK 概述CartoType只有.lib库,而不是.a库。但是现代的 MinGW 支持.lib文件,所以你只需要说服它去寻找.lib文件,而不是.a文件。很可能,您的构建脚本有对 的引用.a,或者没有完整的文件名。

如果您使用的是 QMAKE,您可能会遇到以下情况:

LIBS += -LX:/cartotype_windows_sdk_evaluation_5.10.7/CartoType/bin/15.0/x64/DebugDLL cartotyped

相反,你会想要:

LIBS += X:/cartotype_windows_sdk_evaluation_5.10.7/CartoType/bin/15.0/x64/DebugDLL/cartotyped.lib

推荐阅读