使用VTK生成VS项目时出现CMake错误

时间:2016-12-23 11:36:39

标签: vtk

我创建了一个非常简单的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。

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这看起来不像vtk问题,而是qt问题。最有可能的是,您使用的vtk库依赖于您需要单独安装的一些Qt模块(它们没有附带vtk)。如果你已经拥有它们,只需加上

find_package(Qt5 Help Network UiTools REQUIRED)

在find_package(vtk)行之前,cmake应该找到它。

或者,如果您自己编译VTK并且您确定不需要任何qt,请在cmake中禁用所有与qt相关的部分(只需在cmake中搜索“qt”并禁用所有不需要的内容)并再次编译。