Отчет проекта VTK об ошибках «неопределенная ссылка»C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Отчет проекта VTK об ошибках «неопределенная ссылка»

Сообщение Anonymous »

Я хочу запустить простую демонстрацию VTK8.1.2 на Centos7.9-2009, чтобы протестировать пакет VTK для моего проекта. Вот демо:

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 
#include 
#include 

int main() {
auto sphereSource = vtkSmartPointer::New();
sphereSource->SetRadius(5.0);

auto mapper = vtkSmartPointer::New();
mapper->SetInputConnection(sphereSource->GetOutputPort());

auto actor = vtkSmartPointer::New();
actor->SetMapper(mapper);

auto renderer = vtkSmartPointer::New();
renderer->AddActor(actor);
renderer->SetBackground(0.1, 0.2, 0.4);

auto renderWindow = vtkSmartPointer::New();
renderWindow->AddRenderer(renderer);

auto interactor = vtkSmartPointer::New();
interactor->SetRenderWindow(renderWindow);

renderWindow->Render();
interactor->Start();

return 0;
}
Вот CMakeLists:

Код: Выделить всё

cmake_minimum_required(VERSION 3.22)
project(test)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -gdwarf-4")

find_package(VTK REQUIRED PATHS)

add_executable(test main.cpp)

target_link_libraries(test PRIVATE ${VTK_LIBRARIES})
target_include_directories(test PRIVATE ${VTK_INCLUDE_DIRS})
Когда я создал пакет VTK со стандартным GCC4.8.5. Демо-версия прошла гладко.

Код: Выделить всё

cmake .. -DCMAKE_BUILD_TYPE=Release
Но когда я попытался скомпилировать пакет VTK с помощью GCC11.2. Программа сообщала о множестве ошибок «неопределенной ссылки» при сборке.

Код: Выделить всё

cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/local/gcc11.2/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/gcc11.2/bin/g++
Все сообщение содержит более 4000 строк, но все они практически одинаковы («xxx.so.1: неопределенная ссылка на xxx»), поэтому я просто вставляю сюда часть:

Код: Выделить всё

CMakeFiles/test.dir/main.cpp.o:main.cpp:(.text.unlikely+0x38): more
undefined references to
`vtkSmartPointerBase::~vtkSmartPointerBase()' follow
/home/Code/VTK/VTK-8.1.2/installation/include/vtk-8.1/vtkSmartPointer.h:155: undefined reference to
`vtkSphereSource::New()'
/home/Code/VTK/VTK-8.1.2/installation/include/vtk-8.1/vtkSmartPointer.h:207: undefined reference to
`vtkSmartPointerBase::vtkSmartPointerBase(vtkObjectBase*, vtkSmartPointerBase::NoReference const&)'
/home/Code/VTK/VTK-8.1.2/installation/include/vtk-8.1/vtkSmartPointer.h:155: undefined reference to
`vtkPolyDataMapper::New()'
/home/Code/VTK/VTK-8.1.2/installation/include/vtk-8.1/vtkSmartPointer.h:207: undefined reference to
`vtkSmartPointerBase::vtkSmartPointerBase(vtkObjectBase*, vtkSmartPointerBase::NoReference const&)'
/home/Code/VTK/VTK-8.1.2/installation/include/vtk-8.1/vtkAlgorithm.h:455: undefined reference to
`vtkAlgorithm::GetOutputPort(int)'
/home/Code/VTK/VTK-8.1.2/installation/include/vtk-8.1/vtkSmartPointer.h:155: undefined reference to
`vtkActor::New()'
Единственное изменение — использование GCC11.2 для создания VTK вместо 4.8.5.
Я проверил PATH среды и настройки цепочки инструментов Clion, Я уверен, что это тот же GCC11.2, который я использовал для создания VTK.
Мой проект требует GCC11.2, поэтому я не могу вернуться к использованию 4.8.5. Может кто-нибудь мне помочь, пожалуйста?

Подробнее здесь: https://stackoverflow.com/questions/792 ... nce-errors
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»