GCC (XCode) ругаецо
От: nen777w  
Дата: 12.09.10 13:37
Оценка:
Если включить хидер:

#include "boost/iostreams/filtering_stream.hpp"

начинает ругаться тут:

../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:73: error: expected unqualified-id before ')' token
../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:76: error: expected unqualified-id before ';' token
../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:84: error: expected unqualified-id before ')' token
../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:95: error: expected unqualified-id before ')' token

is_incrementable.hpp


вот здесь:

// This namespace ensures that ADL doesn't mess things up.
namespace is_incrementable_
{
// a type returned from operator++ when no increment is found in the
// type's own namespace
struct tag {};
}

А РУГАЕЦО ТУТ!!! Хотя tag вот он выше...
namespace is_incrementable_
{
.. бла бла бла

72 // two check overloads help us identify which operator++ was picked
73 char (& check(tag) )[2];

}


По всей видимости что такое tag ему не ведомо...
Кто то сталкивался? Как лечить?
Re: GCC (XCode) ругаецо
От: kpcb Россия  
Дата: 12.09.10 14:00
Оценка:
Здравствуйте, nen777w, Вы писали:

N>../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:73: error: expected unqualified-id before ')' token

N>../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:76: error: expected unqualified-id before ';' token
N>../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:84: error: expected unqualified-id before ')' token
N>../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:95: error: expected unqualified-id before ')' token

А сообщений о ненайденых хидерах до этого не было?
Re[2]: GCC (XCode) ругаецо
От: nen777w  
Дата: 12.09.10 14:08
Оценка:
Здравствуйте, kpcb, Вы писали:

K>Здравствуйте, nen777w, Вы писали:


N>>../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:73: error: expected unqualified-id before ')' token

N>>../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:76: error: expected unqualified-id before ';' token
N>>../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:84: error: expected unqualified-id before ')' token
N>>../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:95: error: expected unqualified-id before ')' token

K>А сообщений о ненайденых хидерах до этого не было?


Не было. Вот полное описание ошибки:

In file included from ../BOOST/boost_1_43_0/boost/iostreams/detail/resolve.hpp:17,
from ../BOOST/boost_1_43_0/boost/iostreams/detail/push.hpp:24,
from ../BOOST/boost_1_43_0/boost/iostreams/filtering_stream.hpp:19,
from /Volumes/X/PROJECTS/PROJECT_OGL/SRC/SCENES/ScTestScene.cpp:15:
../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:73: error: expected unqualified-id before ')' token
../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:76: error: expected unqualified-id before ';' token
../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:84: error: expected unqualified-id before ')' token
../BOOST/boost_1_43_0/boost/detail/is_incrementable.hpp:95: error: expected unqualified-id before ')' token
In file included from ../BOOST/boost_1_43_0/boost/iostreams/detail/resolve.hpp:26,
from ../BOOST/boost_1_43_0/boost/iostreams/detail/push.hpp:24,
from ../BOOST/boost_1_43_0/boost/iostreams/filtering_stream.hpp:19,
from /Volumes/X/PROJECTS/PROJECT_OGL/SRC/SCENES/ScTestScene.cpp:15:
../BOOST/boost_1_43_0/boost/iostreams/detail/is_dereferenceable.hpp:62: error: expected unqualified-id before ')' token

Re: GCC (XCode) ругаецо
От: Кодт Россия  
Дата: 12.09.10 16:14
Оценка:
Здравствуйте, nen777w, Вы писали:


В порядке бреда: может, там где-то затесался #define tag ?
Перекуём баги на фичи!
Re[2]: GCC (XCode) ругаецо
От: nen777w  
Дата: 12.09.10 21:28
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, nen777w, Вы писали:



К>В порядке бреда: может, там где-то затесался #define tag ?

Исключено. Пробовал включать
#include "boost/iostreams/filtering_stream.hpp"
первым — та же фигня.

Есть у кого то GCC 4.2 или XCode 3.2.4 что бы проверить что Я не один такой?
Re[3]: GCC (XCode) ругаецо
От: nen777w  
Дата: 12.09.10 23:04
Оценка:
К>>В порядке бреда: может, там где-то затесался #define tag ?
N>Исключено. Пробовал включать
N>#include "boost/iostreams/filtering_stream.hpp"
N>первым — та же фигня.

N>Есть у кого то GCC 4.2 или XCode 3.2.4 что бы проверить что Я не один такой?


Немного покопавшись выяснилось что GCC тут
char (& check(tag) )[2];

не нравится именно check. Т.к. это макрос из системного хидера в AssertMacros.h
Правда еще не смог отследить откуда ниточки тянутся. Но скорее так оно и есть.
Теперь думаю, самому фиксить и писать багу в boost.org?

Просто Я посмотрел предидушее и сл. версии boost этот хидер давно никто не менял.
Есть вероятность что у меня что то не доопределено.
Re[4]: GCC (XCode) ругаецо
От: nen777w  
Дата: 13.09.10 00:02
Оценка:
Здравствуйте, nen777w, Вы писали:


К>>>В порядке бреда: может, там где-то затесался #define tag ?

N>>Исключено. Пробовал включать
N>>#include "boost/iostreams/filtering_stream.hpp"
N>>первым — та же фигня.

N>>Есть у кого то GCC 4.2 или XCode 3.2.4 что бы проверить что Я не один такой?


N>Немного покопавшись выяснилось что GCC тут

N>
N>char (& check(tag) )[2];
N>

N>не нравится именно check. Т.к. это макрос из системного хидера в AssertMacros.h
N>Правда еще не смог отследить откуда ниточки тянутся. Но скорее так оно и есть.
N>Теперь думаю, самому фиксить и писать багу в boost.org?

N>Просто Я посмотрел предидушее и сл. версии boost этот хидер давно никто не менял.

N>Есть вероятность что у меня что то не доопределено.

Короче, покопавшись в багтрекере boost-а нашел фикс этой проблеме.
То же вот вылезло в is_dereferenceable.hpp — опять этот check портит картину...

Удивляет другое, фикс уже предложили давно а вот в 1.43 и 1.44 версию он не попал?
boost-оводы забили на MacOSX ??
Re[5]: GCC (XCode) ругаецо
От: nen777w  
Дата: 13.09.10 00:26
Оценка:
Во общем если кому надо еще будет вот архивчик с пофиксиными файлами.
Re[3]: GCC (XCode) ругаецо
От: alexeiz  
Дата: 13.09.10 01:49
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Здравствуйте, Кодт, Вы писали:


К>>Здравствуйте, nen777w, Вы писали:



К>>В порядке бреда: может, там где-то затесался #define tag ?

N>Исключено. Пробовал включать
N>#include "boost/iostreams/filtering_stream.hpp"
N>первым — та же фигня.

N>Есть у кого то GCC 4.2 или XCode 3.2.4 что бы проверить что Я не один такой?


У меня boost 1.44, gcc 4.2.1, gcc 4.3.5, gcc 4.4.4, gcc 4.5.1, gcc 4.6 — все пучком. Я-ж тебе говорил, надо было из портов ставить.

А там вот такая штука:
char (& check BOOST_PREVENT_MACRO_SUBSTITUTION(tag) )[2];
Re[4]: GCC (XCode) ругаецо
От: nen777w  
Дата: 13.09.10 07:13
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Здравствуйте, nen777w, Вы писали:


N>>Здравствуйте, Кодт, Вы писали:


К>>>Здравствуйте, nen777w, Вы писали:



К>>>В порядке бреда: может, там где-то затесался #define tag ?

N>>Исключено. Пробовал включать
N>>#include "boost/iostreams/filtering_stream.hpp"
N>>первым — та же фигня.

N>>Есть у кого то GCC 4.2 или XCode 3.2.4 что бы проверить что Я не один такой?


A>У меня boost 1.44, gcc 4.2.1, gcc 4.3.5, gcc 4.4.4, gcc 4.5.1, gcc 4.6 — все пучком. Я-ж тебе говорил, надо было из портов ставить.


A>А там вот такая штука:

A>
A>char (& check BOOST_PREVENT_MACRO_SUBSTITUTION(tag) )[2];
A>


гм... уверовал... это? (http://boost.darwinports.com/).
Re[5]: GCC (XCode) ругаецо
От: Кодт Россия  
Дата: 13.09.10 08:06
Оценка: 1 (1) +1
Здравствуйте, nen777w, Вы писали:

N>Удивляет другое, фикс уже предложили давно а вот в 1.43 и 1.44 версию он не попал?

N>boost-оводы забили на MacOSX ??

Скорее, маководы забили на буст (и на всех остальных добрых людей). Это ведь надо додуматься, слово check замакросить.
Тёплыми (горячими даже) словами вспоминаются макросы семейства dlg1,dlg2,... из недр <windows.h>
Перекуём баги на фичи!
Re[5]: GCC (XCode) ругаецо
От: alexeiz  
Дата: 13.09.10 12:53
Оценка: 4 (1)
Здравствуйте, nen777w, Вы писали:

N>гм... уверовал... это? (http://boost.darwinports.com/).


Немного не то. darwinports устарели. А вот http://www.macports.org/ поддерживается очень хорошо.
Re[6]: GCC (XCode) ругаецо
От: nen777w  
Дата: 13.09.10 22:09
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Здравствуйте, nen777w, Вы писали:


N>>гм... уверовал... это? (http://boost.darwinports.com/).


A>Немного не то. darwinports устарели. А вот http://www.macports.org/ поддерживается очень хорошо.


А можно тогда еще один вопрос.
Вот Я скачал поставил MacPorts.
Дальше допустим Я хочу скачать freetype

Делаю так:

port search freetype
— говорит что есть

bitstream-vera @1.10 (graphics)
Bitstream Vera Fonts for use with Freetype/Fontconfig

freetype @2.4.2 (print, graphics)
A software font engine

ftgl @2.1.3-rc5 (graphics)
Freetype / OpenGL bridge

Found 3 ports.


Дальше Я хочу его установить:

port install freetype
— много трудица, наконец то все установил


Но вот как мне теперь например прилинковать его в проекту в XCode?
И где искать эти самые хидераи либу, куда его macports записал мне на диск?
Re[7]: GCC (XCode) ругаецо
От: alexeiz  
Дата: 14.09.10 02:01
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Но вот как мне теперь например прилинковать его в проекту в XCode?

N>И где искать эти самые хидераи либу, куда его macports записал мне на диск?

port contents freetype

должен тебе это сказать. Еще есть такая штука, pkg-config:

pkg-config --libs freetype2
pkg-config --cflags freetype2
Re[8]: GCC (XCode) ругаецо
От: nen777w  
Дата: 14.09.10 06:47
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Здравствуйте, nen777w, Вы писали:


N>>Но вот как мне теперь например прилинковать его в проекту в XCode?

N>>И где искать эти самые хидераи либу, куда его macports записал мне на диск?

A>port contents freetype


A>должен тебе это сказать. Еще есть такая штука, pkg-config:


A>pkg-config --libs freetype2

A>pkg-config --cflags freetype2

У меня такой штуки нету.
Но вот вчера пошарился по диску надыбал место куда port freetype затащил.
Вот оно:
/opt/local/ — а там и include и lib лежат.
Только вот такая странная штука... прописал в XCode пути все туда он вроде либу находит, а линковщик всеравно ругаецо...
Не подскажете случайно утилитку которой можно смотреть что из либы экспортицо, как в винде например есть такие.

И вот еще есть вопрос, сори больше спрашивать не буду. Можно как то макпорт заставить устанавливать порты на другой диск (не основной)?
А то у меня основного уже не хватает для XCode, всего 1Gb осталось, еле для XCode хватает.
Re[9]: GCC (XCode) ругаецо
От: alexeiz  
Дата: 15.09.10 03:14
Оценка: 4 (1)
Здравствуйте, nen777w, Вы писали:

N>Только вот такая странная штука... прописал в XCode пути все туда он вроде либу находит, а линковщик всеравно ругаецо...

N>Не подскажете случайно утилитку которой можно смотреть что из либы экспортицо, как в винде например есть такие.

nm /opt/local/lib/libfreetype.a
Должна показать, что в этой библиотеке.

N>И вот еще есть вопрос, сори больше спрашивать не буду. Можно как то макпорт заставить устанавливать порты на другой диск (не основной)?

N>А то у меня основного уже не хватает для XCode, всего 1Gb осталось, еле для XCode хватает.

Думаю можно через automount подмонтировать /opt/local с другого диска. Посмотри "man auto_master" и /etc/auto_master.
Re[10]: GCC (XCode) ругаецо
От: nen777w  
Дата: 15.09.10 07:44
Оценка:
спасибо большое а помощь!
Все сделал по науке, но похоже что что то не так всеравно.

Для начала Я уже поступил так:
1) Скачал последний freetype с оф. сайта freetype-2.4.2
2) Распаковал его.
3) в терминале:

./configure
sudo make
sudo make install


В результате получил в /usr/local/lib
libfreetype.6.dylib
libfreetype.a
libfreetype.dylib
libfreetype.la
pkgconfig

Но проект в котором нужна freetype всеравно продолжает ругаться
сперва варнингом потом позже ошибкой:

Линковка:

Ld ../bin/Debug/Game.app/Contents/MacOS/Game normal i386
cd /Volumes/X/PROJECTS/PROJECT_OGL/Game/GameProject/Game
setenv MACOSX_DEPLOYMENT_TARGET 10.4
/Developer/usr/bin/g++-4.2 -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk -L/Volumes/X/PROJECTS/PROJECT_OGL/Game/GameProject/Game/../bin/Debug -L../lib/Debug -L/Volumes/X/PROJECTS/PROJECT_OGL/Game/GameProject/Game/../BOOST/boost_1_43_0/stage/lib -F/Volumes/X/PROJECTS/PROJECT_OGL/Game/GameProject/Game/../bin/Debug -filelist /Volumes/X/PROJECTS/PROJECT_OGL/Game/GameProject/Game/../build/Game/Debug/Game.build/Game.build/Objects-normal/i386/Game.LinkFileList -mmacosx-version-min=10.4 -lKernel -ljpeg -lSDL_image -lSDL -lSDLmain -lSDL_mixer -lzlib123 -lzziplib -lglew_static -lboost_thread -lboost_serialization -lboost_system -lboost_filesystem -lboost_signals -lfreetype -framework Carbon -framework Foundation -framework AppKit -framework OpenGL -framework QuickTime -framework IOKit -framework AudioUnit -framework Cg -o /Volumes/X/PROJECTS/PROJECT_OGL/Game/GameProject/Game/../bin/Debug/Game.app/Contents/MacOS/Game



ld: warning: in /Developer/SDKs/MacOSX10.5.sdk/usr/local/lib/libfreetype.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
Undefined symbols:
"_FT_New_Face", referenced from: бла бла бла


На проверку:

nm /usr/local/lib/libfreetype.a


Отлично показывает наличие этого символа и многих других недостающих. Значит линкер после варнинга просто отбросил библиотеку так как она не совместим с моими настроками линковки.
А именно:
— у меня пока что: -arch i386
Значит мне надо пересобрать freetype именно с этим ключиком.
Но Я вот не могу найти как в make — передать именно этот ключ.
Или это нужно сделать еще в ./configure

потому что консольный вывод был такой:

cd builds/unix; ./configure
checking build system type... x86_64-apple-darwin10.2.0
checking host system type... x86_64-apple-darwin10.2.0


Я так понимаю 10.2.0 — это минимальный deployment target
А вот: x86_64 — это архитектура то что будет передано в GCC в параметр -arch когда Я буду делать make

Как это можно изменить?
Re[11]: GCC (XCode) ругаецо
От: nen777w  
Дата: 15.09.10 18:03
Оценка:
все! решил проблему c freetype так :

./configure CFLAGS="-arch i386" LDFLAGS="-arch i386"
make
sudo make install

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.