2014 dxdy logo

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

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




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


05/06/08
477
Ищу код работы с файлами *.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
4195
Владивосток
А какие, собственно, ошибки?

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


05/06/08
477
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
4195
Владивосток
MGM в сообщении #1474206 писал(а):
ругается уже на этапе литнковки, что не контролируется уже никак
Вот тут неправда ваша. Приведённая вами конкретная ругань вполне себе контролируется на этапе исходного текста. Просто где-то очень неявным способом вызывается некая функция, которая не определена.
MGM в сообщении #1474908 писал(а):
из 5000 вершин значения только первых 20-30 вершин
Ну, значит, программа неверна либо изменился со временем формат. Увы, без глубокого и тщательного понимания формата, как по мне, ничего не выйдет.

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


05/06/08
477
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
4195
Владивосток
MGM в сообщении #1475081 писал(а):
из-за прекомпелированногого темплейта
Вот же ж, прекомпиляцию в Цэ возненавидел, едва увидев, уж и не помню где. Но, помнится, в те далёкие времена можно было её не то что б отключить, но перекомпилировать хедера каждый раз. Вроде б, помогало.

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


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

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


16/02/13
4195
Владивосток
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
4195
Владивосток
subsonic в сообщении #1475225 писал(а):
лежит то, что не линкуется
Так, на всякий случай: на Git, как я понял, лежит не то, что не линкуется; на Git лежит то, что, будучи вставлено в существующий проект, приводит к ошибкам линкера...

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


05/06/08
477
Все теперь линкуется. Скачал с 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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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