Сейчас на форуме: (+6 невидимых)

 [email protected] —› Программирование —› STLport - Visual Studio - include error
Посл.ответ Сообщение


Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 03 февраля 2014 18:24 · Поправил: Модератор
· Личное сообщение · #1

MS VS2005/2008 - include error C2006

Имеется вот такой участок кода:

Code:
  1. #if defined (_STLP_USE_NEW_C_HEADERS)
  2. #  include _STLP_NATIVE_CPP_C_HEADER(cstring)
  3. #else
  4. #  include _STLP_NATIVE_C_HEADER(string.h)
  5. #endif


В визуал студии 2005 проекс собирается без проблем, в 2008-й ошибка:

Code:
  1. Error    1
  2. error C2006: '#include' : expected a filename, found 'identifier'
  3. d:\KOD\STLport-5.1.0\stlport\stl\_cstring.h  23        MapEditor
  4. Error    2
  5. fatal error C1083: Cannot open include file: '': No such file or directory
  6. d:\KOD\STLport-5.1.0\stlport\stl\_cstring.h  23        MapEditor


Как то можно это обойти?

-----
-=истина где-то рядом=-




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 03 февраля 2014 18:32
· Личное сообщение · #2

_STLP_NATIVE_CPP_C_HEADER или _STLP_NATIVE_C_HEADER не определен (точнее сказать нельзя, т.к. ты не указал номера строк). Стало быть, найти где определяется и пофиксить.

Определяется в _sunprocc.h библиотеки STLPort:
# define _STLP_NATIVE_CPP_C_HEADER(header) <../CC/##header##.SUNWCCh>

Тут вроде все корректно. Скорее всего неправильно библиотека подключается, да и сама она, судя по всему кривая. Советую ознакомиться с этим тредом:

http://www.gamedev.ru/code/forum/?id=153174

В Visual C++ свой годный STL реализован. Вряд ли этот быстрее. Если проект твой, убирай нафиг эту кривую либу. Если чужой - то кидай уже все сорсы, чтобы можно было нормально выявить ошибку.




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 03 февраля 2014 21:15 · Поправил: KingSise
· Личное сообщение · #3

del

-----
-=истина где-то рядом=-





Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 04 февраля 2014 15:14
· Личное сообщение · #4

в обшем все вроде подключил, собрал, оибка только одна:



Класс не определен, хотя это явно не так. В другом проэкте, ссылыющимся на эте же файлы, таких ошибок нет. В чем может быть проблема?

-----
-=истина где-то рядом=-





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 04 февраля 2014 15:23
· Личное сообщение · #5

нету шаблоного класса
template<typename T>
char_traits

KingSise пишет:
Класс не определен, хотя это явно не так.

докажи




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 04 февраля 2014 15:55
· Личное сообщение · #6

мдя, так и есть...

в работающем проэкте char_traits определен в STLport-5.1.0\stlport\stl\char_traits.h

а вот в не рабочем (все тот же CharTraits.h) ссылка идет уже в Microsoft Visual Studio 9.0\VC\include\iosfwd

как это можно поправить?

-----
-=истина где-то рядом=-





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 04 февраля 2014 16:03
· Личное сообщение · #7

ну вытяни его отдельно с стлпорт если он без зависимостей




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 04 февраля 2014 16:13
· Личное сообщение · #8

походу с зависимостями. В другом проекте все нормально, а что с этим не так, вообще понять не могу....

-----
-=истина где-то рядом=-





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 04 февраля 2014 16:52
· Личное сообщение · #9

в CharTraits.h перед usign namespace std;
добавь
#include <string>
#include <cctype>




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 04 февраля 2014 17:33 · Поправил: KingSise
· Личное сообщение · #10

reversecode, не выходит.

Перезалил полностью весь проект целиком. Должен компилиться из любой папки.
30 Мб - https://dl.dropboxusercontent.com/u/5119217/project.rar

в CharTraits.h заинклюдил <..\..\STLport-5.1.0\stlport\stl\char_traits.h>, ошибка уже такая:

Error 1 error C2006: '#include' : expected a filename, found 'identifier' d:\..\KOD\STLport-5.1.0\stlport\stl\_cstring.h 26 MapEditor
Error 2 fatal error C1083: Cannot open include file: '': No such file or directory d:\..\KOD\STLport-5.1.0\stlport\stl\_cstring.h 26 MapEditor


В проекте, что собирается участок кода в _cstring.h


в этом:


Судя по подсветке условие #if defined (_STLP_USE_NEW_C_HEADERS) не выполняется.

reversecode, может глянешь?

-----
-=истина где-то рядом=-





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 04 февраля 2014 18:18 · Поправил: reversecode
· Личное сообщение · #11

KingSise пишет:
в CharTraits.h заинклюдил <..\..\STLport-5.1.0\stlport\stl\char_traits.h>, ошибка уже такая:

пальцем в небо

весь проект мап этидитора и утилс, завязан на stlport а не на студийном stl
какой незнайка зачем то втулил using namespace std; в utils, чем явно сбил и себя и других

две версии stl смешиваются и ломаются
поэтому для начала нужно stlport правильно настроить в студии, читайте редми или гуглите

что бы по #include <vector> например обращалось к stlport вектору а не в студийному

тогда все должно стать на свои места и собраться
а дергать по файлу и искать ошибки, это не то




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 04 февраля 2014 21:14
· Личное сообщение · #12

reversecode пишет:
нужно stlport правильно настроить в студии,

Согласен, это тру решение. Но в vs2005 проект собирался. Может можно как то схитрить, что бы жопу на британский флаг не рвать?

-----
-=истина где-то рядом=-





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 04 февраля 2014 21:18
· Личное сообщение · #13

vs2005 на том же компьютере?
подумай-разберись, что то не до учел при сборке
пути может какие то не такие, настройки студии в путях итд




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 04 февраля 2014 23:22 · Поправил: KingSise
· Личное сообщение · #14

reversecode пишет:
vs2005 на том же компьютере?


в том то и дело, все происходит на том же компе. Ок, покляжу, мож чего упустил. Я просто думал, что это изначально особенности самой студии. Типа в 2008/2010 костыли убрали и больше старое говно не работает. А код писали корейцы, что весьма доставляет, особенно переводить комментарии...

add

Теперь сотня таких ошибок:
Error 49 error C2039: 'ptrdiff_t' : is not a member of 'std' d:\game\Stas\IrisSVoSource\KOD\STLport-5.1.0\stlport\stl\_cstddef.h 35 MapEditor
Error 50 error C2868: 'ptrdiff_t' : illegal syntax for using-declaration; expected qualified-name d:\game\Stas\IrisSVoSource\KOD\STLport-5.1.0\stlport\stl\_cstddef.h 35 MapEditor
Error 51 error C2039: 'wint_t' : is not a member of 'std' d:\game\Stas\IrisSVoSource\KOD\STLport-5.1.0\stlport\stl\_cwchar.h 150 MapEditor
Error 52 error C2868: 'wint_t' : illegal syntax for using-declaration; expected qualified-name d:\game\Stas\IrisSVoSource\KOD\STLport-5.1.0\stlport\stl\_cwchar.h 150 MapEditor
Error 53 error C2039: 'mbstate_t' : is not a member of 'std' d:\game\Stas\IrisSVoSource\KOD\STLport-5.1.0\stlport\stl\_cwchar.h 157 MapEditor
Error 54 error C2868: 'mbstate_t' : illegal syntax for using-declaration; expected qualified-name d:\game\Stas\IrisSVoSource\KOD\STLport-5.1.0\stlport\stl\_cwchar.h 157 MapEditor
Error 55 error C2039: 'btowc' : is not a member of 'std' d:\game\Stas\IrisSVoSource\KOD\STLport-5.1.0\stlport\stl\_cwchar.h 163 MapEditor

яндекс находит всего 14 страниц ;( Опять этот stl...

-----
-=истина где-то рядом=-




Ранг: 4.0 (гость)
Активность: 0.03=0.03
Статус: Участник

Создано: 29 ноября 2019 19:55
· Личное сообщение · #15

KingSise Доброго вечера всем. Тут разбирается проблема очень похожая на мою. Я пытаюсь собрать чужой проект в котором используется STLport. Библиотеку собрал но видимо подключил не верно.

Code:
  1. #  if defined (_STLP_USE_NEW_C_HEADERS)
  2. #    if defined (_STLP_HAS_INCLUDE_NEXT)
  3. #      include_next <cstddef>
  4. #    else
  5. #      include _STLP_NATIVE_CPP_C_HEADER(cstddef)
  6. #    endif
  7. #  else
  8. #    include <stddef.h>
  9. #  endif


fatal error C1083: Не удается открыть файл включение: MSVCINCLUDECPP/include/cstddef: No such file or directory.
Прошу подсказать особенности подлючения STLPort к VS2017. Если что. есть сборка STLPort адаптированная для VS2017.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 29 ноября 2019 20:15
· Личное сообщение · #16

%MSVCINCLUDECPP% в переменных окружения присутствует?

-----
EnJoy!




Ранг: 4.0 (гость)
Активность: 0.03=0.03
Статус: Участник

Создано: 29 ноября 2019 20:19 · Поправил: Anixiy
· Личное сообщение · #17

Jupiter Нет. Какое значение в ней должно быть, если она должна присутствовать, какая дирректория?

Добавлено спустя 3 минуты
Jupiter Дело в том, что сам файд "cstddef" присутствует в папке STLPort, но совсем не в папке include.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 29 ноября 2019 21:35
· Личное сообщение · #18

Anixiy пишет:
Какое значение в ней должно быть, если она должна присутствовать, какая директория?

Без понятия.

Смотри файл студии ..\VC\Auxiliary\Build\vcvarsall.bat.

cstddef должен лежать в инклудах студии, примерный путь:

..\VC\Tools\MSVC\<версия>\include\cstddef

Для 2019, например:
..\2019\VC\Tools\MSVC\14.23.28105\include\

-----
EnJoy!




Ранг: 4.0 (гость)
Активность: 0.03=0.03
Статус: Участник

Создано: 29 ноября 2019 21:44
· Личное сообщение · #19

Jupiter А если мне надо, чтоб она приняла значение дирректории ни стандартного STL, а STLPort, как переопределить ее?




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 29 ноября 2019 22:08
· Личное сообщение · #20

Тогда определи _STLP_CSTDIO и _STLP_CSTDDEF, очевидно же.
Не особо разбирался с STLport, имел с ним дело очень давно, но предполагаю, что тебе нужно изучить значения #define.

Посмотри на содержимое файла :

Code:
  1. /* This file provides a low-level interface between the internal
  2.  * representation of struct FILE, from the C stdio library, and
  3.  * the C++ I/library. */
  4.  
  5. #ifndef _STLP_CSTDIO
  6. #  include <cstdio>
  7. #endif
  8. #ifndef _STLP_CSTDDEF
  9. #  include <cstddef>
  10. #endif


cstdio и cstddef нужны только в том случае, если не определены _STLP_CSTDIO и _STLP_CSTDDEF, понимаешь?

И если тебе не нужно использовать стандартный cstddef от Visual Studio, то тебе нужно определить дифайн _STLP_CSTDDEF.

-----
EnJoy!




Ранг: 4.0 (гость)
Активность: 0.03=0.03
Статус: Участник

Создано: 29 ноября 2019 23:31 · Поправил: Anixiy
· Личное сообщение · #21

Jupiter Прошу прощения за глупый вопрос. А где ее лучше определить? Я потыкал в нескольких .cpp файлах проекта, на которые указывали ошибки, но как-то ничего не изменилось.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 30 ноября 2019 00:12
· Личное сообщение · #22

Anixiy пишет:
А где ее лучше определить?


Лучше всего начать с азов.
Пока у меня сложилось впечатление, что дальше тебе будет сложнее, если ты не очень разбираешься в том, где настраиваются глобальные define.

Тут всё очень подробно описано:
--> /D (Preprocessor Definitions) <--
--> Set compiler and build properties <--
--> Тебе сюда <--

-----
EnJoy!




Ранг: 4.0 (гость)
Активность: 0.03=0.03
Статус: Участник

Создано: 30 ноября 2019 13:17 · Поправил: Anixiy
· Личное сообщение · #23

Jupiter

Добрый день. Определил я глобально define, добавил инклуды, директории на либы. Но ошибка никуда не делась.

ea91_30.11.2019_EXELAB.rU.tgz - Oracle VM VirtualBox 2019-11-30 12.06.40.png

Добавлено спустя 1 час 30 минут
Jupiter

Последнюю проблему поборол. Теперь появилась проблемка в winddk. В заголовочнике guiddef.h
"Ошибка C3861 memcmp: идентификатор не найден". Как я понимаю опять не может определиться откуда брать, из STLPort или из стдийной?




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 30 ноября 2019 14:55
· Личное сообщение · #24

Anixiy пишет:
Теперь появилась проблемка в winddk.


--> Тебе сюда <--


Anixiy пишет:
"Ошибка C3861 memcmp: идентификатор не найден


- Смотри, какой используется <string.h>
- Смотри в сторону _STLP_DONT_USE_PRIV_NAMESPACE
- Смотри в сторону using _STLP_VENDOR_CSTD::memcmp;

-----
EnJoy!




Ранг: 4.0 (гость)
Активность: 0.03=0.03
Статус: Участник

Создано: 30 ноября 2019 19:47
· Личное сообщение · #25

Jupiter

Там у winddk свои дефайны нужно подключать оказывается. Буду штудировать его. Спасибо за помощь с STLPort.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 30 ноября 2019 21:09
· Личное сообщение · #26

Anixiy

Когда всё настроишь, напиши по шагам, что делал, чтобы не только тебе помогали, но и ты помог грядущим мученикам с STLPort.


-----
EnJoy!



 [email protected] —› Программирование —› STLport - Visual Studio - include error
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати