我创建了一个非常简单的CMakeLists文件,类似于here所示的文件:
private int counter = 0;
private ShowcaseView showcaseView;
Target t1,t2,t3;
Button b1,b2,b3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1 = new ViewTarget(R.id.button, this);
t2 = new ViewTarget(R.id.button2, this);
t3 = new ViewTarget(R.id.button3, this);
showcaseView = new ShowcaseView.Builder(this)
.setTarget(Target.NONE).setOnClickListener(this)
.setContentTitle("Title")
.setContentText("Here you can see the Showcase text")
.build();
showcaseView.setButtonText("Next");
}
@Override
public void onClick(View v) {
switch (counter) {
case 0:
showcaseView.setShowcase(t1, true);
showcaseView.setContentTitle("Button 1");
showcaseView.setContentText("See function about the button one");
break;
case 1:
showcaseView.setShowcase(t2, true);
showcaseView.setContentTitle("Button 2");
showcaseView.setContentText("See function about the button Two");
break;
case 2:
showcaseView.setShowcase(t3, true);
showcaseView.setContentTitle("Button 3");
showcaseView.setContentText("See function about the button THREE");
showcaseView.setButtonText("GOT IT");
break;
case 3:
showcaseView.hide();
break;
}
counter++;
}
在CMake中配置后,我将VTK_DIR变量设置为包含VTKConfig文件的目录。 在CMake中生成后,我得到3个错误:
cmake_minimum_required (VERSION 3.5)
project (MyProject)
find_package (VTK REQUIRED NO_MODULE)
include (${VTK_USE_FILE})
add_library (MyLib STATIC source.cpp)
target_link_libraries(MyLib ${VTK_LIBRARIES})
其中XXX是帮助,网络或UiTools。
有人知道如何解决这个问题吗?
答案 0 :(得分:0)
这看起来不像vtk问题,而是qt问题。最有可能的是,您使用的vtk库依赖于您需要单独安装的一些Qt模块(它们没有附带vtk)。如果你已经拥有它们,只需加上
find_package(Qt5 Help Network UiTools REQUIRED)
在find_package(vtk)行之前,cmake应该找到它。
或者,如果您自己编译VTK并且您确定不需要任何qt,请在cmake中禁用所有与qt相关的部分(只需在cmake中搜索“qt”并禁用所有不需要的内容)并再次编译。