2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Как адаптировать C++11 в MS VS 2017 С++
Сообщение17.07.2020, 19:20 
Аватара пользователя


05/06/08
479
Ищу код работы с файлами *.ply. Это задача номер один.
Нашел какой-то старый вариант - читает только несколько первых вершин (далее что-то неразумное) и полный бред с фасетками.
На Git хабе нашел пример написанный на C++11. Но при попытке вставить код в консольный проект MS VS 2017 С++
получил головную боль с LNK2019.
То есть ругается уже на этапе литнковки, что не контролируется уже никак. Хоть зови шамана.
Заранее спасибо за любой совет.
Или ссылку на софт с примерами read_ply() write_ply() чтение запись файлов *.ply.

 Профиль  
                  
 
 Re: Как адаптировать C++11 в MS VS 2017 С++
Сообщение18.07.2020, 16:42 
Заслуженный участник


16/02/13
4214
Владивосток
А какие, собственно, ошибки?

 Профиль  
                  
 
 Re: Как адаптировать C++11 в MS VS 2017 С++
Сообщение20.07.2020, 12:57 
Аватара пользователя


05/06/08
479
iifat в сообщении #1474379 писал(а):
А какие, собственно, ошибки?

1. Если по С++11то ошибка например такая:
Severity Code Description Project File Line Suppression State
Код:
Error   LNK2019   unresolved external symbol "public: __thiscall tinyply::PlyFile::PlyFile(void)" (??0PlyFile@tinyply@@QAE@XZ) referenced in function "void __cdecl read_ply_file(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,bool)" (?read_ply_file@@YAXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z)   ply_pp   D:\ply_pp\ply_pp\plypp.obj      

Вроде бы все файлы *.h included.

2. Если по чтению файла старой версией софта (код которой удалось встроить в проект), то там из 5000 вершин значения только первых 20-30 вершин читается нормально и похоже на правду, а затем выдается для всех остальных вершин
$+		vlist[35]	0x0078a3e0 {x=-107374176. y=-107374176. z=-107374176. ...}	Vertex *$
С фасетами еще хуже. Там 6000 фасет все по 254 вершин и номера этих вершит отрицателные. Что полный абсурд.

 Профиль  
                  
 
 Re: Как адаптировать C++11 в MS VS 2017 С++
Сообщение20.07.2020, 15:58 
Заслуженный участник


16/02/13
4214
Владивосток
MGM в сообщении #1474206 писал(а):
ругается уже на этапе литнковки, что не контролируется уже никак
Вот тут неправда ваша. Приведённая вами конкретная ругань вполне себе контролируется на этапе исходного текста. Просто где-то очень неявным способом вызывается некая функция, которая не определена.
MGM в сообщении #1474908 писал(а):
из 5000 вершин значения только первых 20-30 вершин
Ну, значит, программа неверна либо изменился со временем формат. Увы, без глубокого и тщательного понимания формата, как по мне, ничего не выйдет.

 Профиль  
                  
 
 Re: Как адаптировать C++11 в MS VS 2017 С++
Сообщение21.07.2020, 17:20 
Аватара пользователя


05/06/08
479
iifat в сообщении #1474944 писал(а):
1. Вот тут неправда ваша. Приведённая вами конкретная ругань вполне себе контролируется на этапе исходного текста. Просто где-то очень неявным способом вызывается некая функция, которая не определена.
2.Ну, значит, программа неверна либо изменился со временем формат. Увы, без глубокого и тщательного понимания формата, как по мне, ничего не выйдет.


2. Это я примерно понял, а так, как тексты распаковки *.ply файлов достаточно запутанны, в силу сложности формата, а та часть которая отвечает за чтение бинарной информации примитивна и врядли написана неверно, то навеняка баг кроется в какой-то несовместимости Линукса и Виндов на стадии чтения или совсем уж какая-нибудь кодировочная глупость невидимая ни логике, ни дебагу. Поэтому я и решил поменять источник кода на более новый.
1. Я согласен с вами целиком. Я неправ. В чем-то. Но так как MS VS++ "вещь в себе" * то понять гле я неправ по существу просто невозможно. Так как исползую исключительно чужие тексты. А они наверняка легко и компелируются, и линкуются с помощью дженуин мейк фала. Однако мне нужен не экзешник, а встренный драйвер доступа к файлам *.ply. Увы. :(

*Например, я теперь не могу вернутся даже к ошибке линковки из-за прекомпелированногого темплейта с stdafx.h и stdafx.cpp и как следсвие ругань типа:
"Severity Code Description Project File Line Suppression State
Error C1083 Cannot open precompiled header file: 'Release\PlyFile.pch': No such file or directory PlyFile C:\Users\Dropbox\PlyFile\PlyFile\PlyFile.cpp хотя до этого все работало, как часы.

 Профиль  
                  
 
 Re: Как адаптировать C++11 в MS VS 2017 С++
Сообщение21.07.2020, 17:56 
Заслуженный участник


16/02/13
4214
Владивосток
MGM в сообщении #1475081 писал(а):
из-за прекомпелированногого темплейта
Вот же ж, прекомпиляцию в Цэ возненавидел, едва увидев, уж и не помню где. Но, помнится, в те далёкие времена можно было её не то что б отключить, но перекомпилировать хедера каждый раз. Вроде б, помогало.

 Профиль  
                  
 
 Re: Как адаптировать C++11 в MS VS 2017 С++
Сообщение21.07.2020, 18:13 
Аватара пользователя


05/06/08
479
PS Ошибку LNK в новой версии драйвера как-то преодолел. Убрав inline в паре мест исходника. Такие траблы встречал лет десять назад, но забыл.Не знаю, чем все кончится, однако уже есть с чем работать. Хотя может быть читать корректно не будет и этот драйвер.

 Профиль  
                  
 
 Re: Как адаптировать C++11 в MS VS 2017 С++
Сообщение22.07.2020, 16:17 
Заслуженный участник


16/02/13
4214
Владивосток
MGM в сообщении #1475090 писал(а):
Убрав inline в паре мест исходника
(Сосредоточенно чеша в затылке) Пытаюсь сообразить, что может изменить убранный или добавленный inline. Судя по ошибке линкера, где-то он ожидает неинлайновой реализации. Если бы (inline не догма, а возможность) программа где-то оредовала неинлайновой реализации инлайновой функции, она б её там и сделала. То бишь, один из модулей включает версию хидера с неинлайновым описанием функции. Ох, чует моё сердце, вас ждёт ещё много чудесных открытий...

 Профиль  
                  
 
 Re: Как адаптировать C++11 в MS VS 2017 С++
Сообщение22.07.2020, 17:36 


22/07/20
3
Дайте ссылку на Git, где лежит то, что не линкуется.

 Профиль  
                  
 
 Re: Как адаптировать C++11 в MS VS 2017 С++
Сообщение23.07.2020, 03:36 
Заслуженный участник


16/02/13
4214
Владивосток
subsonic в сообщении #1475225 писал(а):
лежит то, что не линкуется
Так, на всякий случай: на Git, как я понял, лежит не то, что не линкуется; на Git лежит то, что, будучи вставлено в существующий проект, приводит к ошибкам линкера...

 Профиль  
                  
 
 Re: Как адаптировать C++11 в MS VS 2017 С++
Сообщение27.07.2020, 20:26 
Аватара пользователя


05/06/08
479
Все теперь линкуется. Скачал с Git по поиску read write *.ply file format.
Читает данные нормально. Но захотел вставить код уже не в простой MS VS C++ проект, а уже в готовый большой проект с другими приложениями.

Но теперь нарвался на совсем другую ошибку связанную с инклюдом <chrono>
В исходном коде был написан ручной таймер с высокой точность. Мне он не нужен. Поэтому с появлением ошибки просто выбросил все что связано с этим кодом.
Выкинул инклюд <chrono>.
Почисти проект. Но все равно ошибка направляет меня в системный <chrono>!!!
Возможно, что некоторые другие системные инклюды добавляют <chrono>, но как это разрешить ума не приложу.
В моем проекте поиск по <chrono> сейчас нулевой.

PS Код вот этого перца, грек, наверное Authored by Dimitri Diakopoulos (http://www.dimitridiakopoulos.com)
https://github.com/ddiakopoulos/tinyply

 Профиль  
                  
 
 Re: Как адаптировать C++11 в MS VS 2017 С++
Сообщение12.09.2020, 01:07 


21/10/15
196
Можно в свойствах проекта C/C++ ->Advanced включить поле Show includes.
Тогда при компиляции файла (Ctrl+F7) будет подробно писаться, что где включается.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: granit201z


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group