不能在新的 qbs 版本 (1.12) 中包含静态库
Can't include static lib in new qbs version (1.12)
请帮帮我。
我之前有一个用 qt 构建的静态库,它使用 Qt 库。下一个应用程序可在 qbs 1.11 版本中编译,而不是在新的 qbs 1.12:
中
Application {
qbsSearchPaths: "path_to_my_modules"
Depends { name: "Qt.widgets" }
Depends { name: "mylibs.mylib" }
files: "main.cpp"
}
在 linking 步它排除了多个错误,有点像:
undefined reference to `_imp___ZN7QString6appendERKS_'
undefined reference to `_imp___Z18qSetMessagePatternRK7QString'
...等等
模块 mylib 看起来像:
import qbs
Module {
Depends { name: "cpp" }
cpp.includePaths: path
cpp.staticLibraries: path + "/libmylib.a"
}
这是一个错误,还是我需要做一些更正?
尝试 link 在 Windows 10(64 位)上使用 Qt Creator 4.6 和 4.7 rc 分别用于新旧 qbs 版本。
这里的问题是qbs无法知道mylib有Qt依赖。它可能在以前的版本中意外地为您工作,但这只是运气。
重写您的模块应该有所帮助:
Module {
Depends { name: "Qt.core" } // Or whatever modules mylib uses
Group {
filesAreTargets: true
fileTags: "staticlibrary"
filePath: path + "/libmylib.a"
}
}
请帮帮我。
我之前有一个用 qt 构建的静态库,它使用 Qt 库。下一个应用程序可在 qbs 1.11 版本中编译,而不是在新的 qbs 1.12:
中Application {
qbsSearchPaths: "path_to_my_modules"
Depends { name: "Qt.widgets" }
Depends { name: "mylibs.mylib" }
files: "main.cpp"
}
在 linking 步它排除了多个错误,有点像:
undefined reference to `_imp___ZN7QString6appendERKS_'
undefined reference to `_imp___Z18qSetMessagePatternRK7QString'
...等等
模块 mylib 看起来像:
import qbs
Module {
Depends { name: "cpp" }
cpp.includePaths: path
cpp.staticLibraries: path + "/libmylib.a"
}
这是一个错误,还是我需要做一些更正?
尝试 link 在 Windows 10(64 位)上使用 Qt Creator 4.6 和 4.7 rc 分别用于新旧 qbs 版本。
这里的问题是qbs无法知道mylib有Qt依赖。它可能在以前的版本中意外地为您工作,但这只是运气。 重写您的模块应该有所帮助:
Module {
Depends { name: "Qt.core" } // Or whatever modules mylib uses
Group {
filesAreTargets: true
fileTags: "staticlibrary"
filePath: path + "/libmylib.a"
}
}