私はいくつかのレベルを持つプロジェクトに取り組んでいます。個人的には、私はqbsを初めて勉強しており、qbsについての内部的な文書や例はあまりありません。ライブラリでQt qbsプロジェクト設定が見つかりませんコンパイルエラー
環境:
Qt5.6.1。 Qt作成者4.01; Ubuntu 16.04; Qbs 1.5.1
ここにプロジェクトの階層があります。トップレベルでは、それはproject.qbsました:
import qbs
import qbs.File
Project{
var binaries = [
"component1/component1.qbs",
"component2/component2.qbs",
"subpro/subpro.qbs", // <- 1. the project I am working on
"ourlib/ourlib.qbs", // <- 2. the library I am using
]
return binaries
}
subpro.qbsのようなものです:
import qbs
CppApplication{
type: "application"
name: "myapp"
Group{
name: "project-install"
fileTagsFilter: "application"
qbs.install: false
qbs.install: "bin"
}
Depends {name:"cpp"}
Depends {name:"blah1"}
Depends {name:"ourlib"}
cpp.libraryPaths:["path_of_lib3rdParty"] // 4. set the 3rd party lib path
cpp.staticLibraries:["lib3rdParty.a"] // 5. set the 3rd party lib name
files["myapp.cpp","f2"...]
}
:
import qbs
Project {
name: subpro
references:[
"app1/app1.qbs"
"app2/app2.qbs"
"myapp/myapp.qbs" //<- 3. the application I am working on
]
}
myapp.qbsは次のようです
最終的に私たちのlibのqbs:
import qbs
DynamicLibrary{
name: "ourlib"
Group{
name: "project-install"
fileTagsFilter: "dynamiclibrary"
qbs.install: false
qbs.installDir: "debug"
}
Depends {name: "cpp"}
cpp.includePath:["..."]
cpp.libraryPaths:["path_of_lib3rdParty"] // 6. same as 4
cpp.staticLibraries:["lib3rdParty.a"] // 7. same as 5
}
私は "qbs debug"をプロジェクトのルートフォルダの下で実行します。 QBSを示しています。
だから、linking ourlib.so
compiling myapp.cpp
ERROR: ...
/usr/bin/ld: cannot find -llib3rdParty_s.a
、エラーメッセージに基づいて、QBSはmyapp.cppを構築するために失敗し、myappのプロジェクトでlib3rdPartyを見つけよう。私は4と5を追加しましたが、それでも同じエラーがあります。 ourlib.soとのリンクエラーがないので、6と7は正しいと思われます。構築プロセスを動作させるためにqbsをどのように設定する必要がありますか?
もう1つの質問はキーワード「レファレンス」についてです。プロジェクトのどのレベルでも他のqbsファイルを参照できますか?それがどのように働きますか?私は「依存する」についても同じ質問をしました。
栄
お返事ありがとうございます:) – r0ng