Ошибка связи VTK с VCPKG в конфигурации выпускаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ошибка связи VTK с VCPKG в конфигурации выпуска

Сообщение Anonymous »

У меня возникают ошибки компоновщика при включении VTK в проект C++ через VCPKG.
Ошибки только в конфигурации выпуска.
ОС: windows 10,
Менеджер пакетов: vcpkg,
Система сборки: cmake,
Компилятор: MSVC 2022
VTK: версия 9.3.0.
Вот минимальный пример кода:
main.cpp:

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

#include 
#include 
#include 
#include 
#include 

#include 
#include 

int main() {

//  MultiBlockDataSet
vtkNew mbDataSet;

// Add some dataset
vtkNew grid1;
vtkNew points1;
points1->InsertNextPoint(0, 0, 0);
points1->InsertNextPoint(1, 0, 0);
points1->InsertNextPoint(0.5, 1, 0);

vtkNew cells1;
cells1->InsertNextCell({0, 1, 2});

grid1->SetPoints(points1);
grid1->SetCells(VTK_TRIANGLE, cells1);
mbDataSet->SetBlock(0, grid1);
// Create writer and write
vtkNew writer;
writer->SetInputData(mbDataSet);
writer->SetFileName("Groups.vtm");
writer->Write();
return 0;
}
CMakeLists.txt:

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

cmake_minimum_required (VERSION 3.20)
project (VTK_test LANGUAGES CXX)
set(VCPKG_TARGET_TRIPLET x64-windows-static)
include( $ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake)
include_directories( ${INCLUDE_DIRECTORIES}  $ENV{VCPKG_ROOT}/installed/x64-windows-static/include/ )

find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
add_executable(VTK_test_target   main.cpp )

set_target_properties (VTK_test_target PROPERTIES CXX_STANDARD 20 CMAKE_CXX_STANDARD_REQUIRED ON)
# Static link option
set_property (TARGET VTK_test_target PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$")

target_link_libraries(VTK_test_target PUBLIC ${VTK_LIBRARIES})
команда для установки vtk через vcpkg :

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

vcpkg install vtk   --triplet x64-windows-static --clean-after-build
Вывод компилятора:

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

10 mismatches detected
mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MT_StaticRelease' in main.obj
mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MT_StaticRelease' in main.obj
mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MT_StaticRelease' in main.obj
mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MT_StaticRelease' in main.obj
mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MT_StaticRelease' in main.obj
mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
Я использую тот же подход для добавления других библиотек (например, boost и qt) для конфигураций отладки и выпуска.

Можно ли использовать VTK с vcpkg в конфигурации выпуска со статической привязкой?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ase-config
Ответить

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

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

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

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

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