여러 수준의 프로젝트에서 작업하고 있습니다. 개인적으로, 나는 qbs에 익숙하지 않고 내부에 대한 많은 문서와 예제가 없다.라이브러리와 Qt qbs 프로젝트 설정을 찾을 수 없습니다. 컴파일 오류
환경 :
Qt5.6.1; Qt 크리에이터 4.01; 우분투 16.04; Qbs 1.5.1
다음은 프로젝트의 계층 구조입니다.
import qbs
Project {
name: subpro
references:[
"app1/app1.qbs"
"app2/app2.qbs"
"myapp/myapp.qbs" //<- 3. the application I am working on
]
}
myapp.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 같은 것이있다 : 최상위 수준에, 그것은 project.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"...]
}
마지막으로 우리 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를 구성하여 빌딩 프로세스가 작동하도록하려면 어떻게해야합니까?
또 다른 질문은 키워드 "references"에 관한 것입니다. 프로젝트의 모든 레벨에서 다른 qbs 파일을 참조 할 수 있습니까? 어떻게 작동합니까? 나는 "의존"에 대해서도 같은 질문을 가지고있다.
감사
룽
답변 해 주셔서 감사합니다. :) – r0ng