ESL python 的 Freeswitch 1.6 安装
Freeswitch 1.6 installation for ESL python
我是 运行ning Freeswitch 1.6 和 Mac 10.10.5
我的 Freeswitch 服务器将在 AWS 中,需要在我的本地环境中安装 Python ESL 模块才能开始使用 ESL 进行开发。
我没能找到 ESL 模块。我得到了整个源代码并尝试只构建 Python 库。
我使用了 this 说明。
git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git
cd /usr/src/freeswitch
./bootstrap.sh -j
./configure
cd /usr/src/freeswitch/libs/esl
当我转到 libs/esl
文件夹并键入:
make pymod -v
我得到:
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-apple-darwin11.3.0
当我运行:
make pymod
我收到这个错误:
/Applications/Xcode.app/Contents/Developer/usr/bin/make MYLIB=".././.libs/libesl.a" SOLINK="-shared -Xlinker -x" CFLAGS="-I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/libs/esl/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/libs/libteletone/src -Werror -DMACOSX -DHAVE_OPENSSL" CXXFLAGS="-I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/libs/esl/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/libs/libteletone/src -fPIC" CXX_CFLAGS="" -C python
c++ -shared -Xlinker -x esl_wrap.o .././.libs/libesl.a `python ./python-config --ldflags` -o _ESL.so -L.
ld: internal error: atom not found in symbolIndex(__ZN24SWIG_Python_Thread_Allow3endEv) for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [_ESL.so] Error 1
make: *** [pymod] Error 2
在我的 Makefile 中我有这个:
PYTHON = /Users/spicyramen/anaconda/bin/python
PYTHON_CFLAGS = -I/Users/spicyramen/anaconda/include/python2.7 -I/Users/spicyramen/anaconda/include/python2.7 -fno-strict-aliasing -I/Users/spicyramen/anaconda/include -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
PYTHON_LDFLAGS = -L/Users/spicyramen/anaconda/lib -ldl -framework CoreFoundation -lpython2.7
PYTHON_SITE_DIR = /Users/spicyramen/anaconda/lib/python2.7/site-packages
以下解决方案为我解决了这个问题:
来自https://freeswitch.org/jira/browse/ESL-92
Mac OS X post Mavericks 附带的 ld
命令中存在错误,因此“-x”标志会去除额外的符号.该错误在此处描述 -x link flag causing link errors on Mac OSX 10.9 (bug?) (I've filed a ticket upstream https://llvm.org/bugs/show_bug.cgi?id=23337)。
解决方法:
链接时删除“-x”标志 _ESL.so
cd libs/esl
sed -i '' 's/\(SOLINK = .*\)-x//p' Makefile
make pymod
我是 运行ning Freeswitch 1.6 和 Mac 10.10.5 我的 Freeswitch 服务器将在 AWS 中,需要在我的本地环境中安装 Python ESL 模块才能开始使用 ESL 进行开发。 我没能找到 ESL 模块。我得到了整个源代码并尝试只构建 Python 库。
我使用了 this 说明。
git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git
cd /usr/src/freeswitch
./bootstrap.sh -j
./configure
cd /usr/src/freeswitch/libs/esl
当我转到 libs/esl
文件夹并键入:
make pymod -v
我得到:
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-apple-darwin11.3.0
当我运行:
make pymod
我收到这个错误:
/Applications/Xcode.app/Contents/Developer/usr/bin/make MYLIB=".././.libs/libesl.a" SOLINK="-shared -Xlinker -x" CFLAGS="-I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/libs/esl/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/libs/libteletone/src -Werror -DMACOSX -DHAVE_OPENSSL" CXXFLAGS="-I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/libs/esl/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/libs/libteletone/src -fPIC" CXX_CFLAGS="" -C python
c++ -shared -Xlinker -x esl_wrap.o .././.libs/libesl.a `python ./python-config --ldflags` -o _ESL.so -L.
ld: internal error: atom not found in symbolIndex(__ZN24SWIG_Python_Thread_Allow3endEv) for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [_ESL.so] Error 1
make: *** [pymod] Error 2
在我的 Makefile 中我有这个:
PYTHON = /Users/spicyramen/anaconda/bin/python
PYTHON_CFLAGS = -I/Users/spicyramen/anaconda/include/python2.7 -I/Users/spicyramen/anaconda/include/python2.7 -fno-strict-aliasing -I/Users/spicyramen/anaconda/include -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
PYTHON_LDFLAGS = -L/Users/spicyramen/anaconda/lib -ldl -framework CoreFoundation -lpython2.7
PYTHON_SITE_DIR = /Users/spicyramen/anaconda/lib/python2.7/site-packages
以下解决方案为我解决了这个问题:
来自https://freeswitch.org/jira/browse/ESL-92
Mac OS X post Mavericks 附带的 ld
命令中存在错误,因此“-x”标志会去除额外的符号.该错误在此处描述 -x link flag causing link errors on Mac OSX 10.9 (bug?) (I've filed a ticket upstream https://llvm.org/bugs/show_bug.cgi?id=23337)。
解决方法:
链接时删除“-x”标志 _ESL.so
cd libs/esl
sed -i '' 's/\(SOLINK = .*\)-x//p' Makefile
make pymod