[asterisk-ss7] error compiling on gentoo amd64
Kristian Nielsen
knielsen at knielsen-hq.org
Wed Jun 24 08:14:30 CDT 2009
caio <elcaio at gmail.com> writes:
>> On Tue, Jun 23, 2009 at 1:59 AM, caio <elcaio at gmail.com
>> <mailto:elcaio at gmail.com>> wrote:
>> # make chan_ss7.so
>> Makefile:163: .depend: No such file or directory
>> gcc -MM -E -I/usr/include/zaptel -I/usr/include/asterisk
>> In file included from
>> /usr/include/gentoo-multilib/amd64/bits/string2.h:52,
>> from /usr/include/bits/string2.h:8,
>> from /usr/include/gentoo-multilib/amd64/string.h:423,
>> from /usr/include/string.h:8,
>> from chan_ss7.c:29:
>> /usr/include/asterisk/endian.h:61:2: error: #error Need to know
>> endianess
So this looks like the root problem.
Note how what is surely a gentoo system header seems to include an asterisk
header. /usr/include/gentoo-multilib/amd64/bits/string2.h seems to include
/usr/include/asterisk/endian.h.
This surely was not intended. Most likely there are two headers on the system
both called endian.h, and the wrong one is picked up.
>> In file included from /usr/include/bits/string2.h:8,
>> from /usr/include/gentoo-multilib/amd64/string.h:423,
>> from /usr/include/string.h:8,
>> from chan_ss7.c:29:
>> /usr/include/gentoo-multilib/amd64/bits/string2.h:98:21: error:
>> missing binary operator before token "("
This is probably a typedef that is missing due to not including the right
endian.h.
You may have to fix the asterisk and/or chan_ss7 to workaround this.
Maybe remove the -I/usr/include/asterisk from the Makefile, and then change
any includes that need it from #include <FOO.h> to #include <asterisk/FOO.h>.
This should make it so that the wrong endian.h cannot be picked up by mistake.
Or some similar fix to remove the problem.
Hope this helps,
- Kristian.
More information about the asterisk-ss7
mailing list