X Tutup
The Wayback Machine - https://web.archive.org/web/20200910233635/https://github.com/sbinet/go-python/issues/54
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

many undefined and error when compile #54

Open
Ryan007 opened this issue Aug 29, 2017 · 6 comments
Open

many undefined and error when compile #54

Ryan007 opened this issue Aug 29, 2017 · 6 comments

Comments

@Ryan007
Copy link

@Ryan007 Ryan007 commented Aug 29, 2017

# github.com/sbinet/go-python
/usr/local/lib/libpython2.7.a(posixmodule.o): In function `posix_tmpnam':
/root/Python-2.7.13/./Modules/posixmodule.c:7614: warning: the use of `tmpnam_r' is dangerous, better use `mkstemp'
/usr/local/lib/libpython2.7.a(posixmodule.o): In function `posix_tempnam':
/root/Python-2.7.13/./Modules/posixmodule.c:7561: warning: the use of `tempnam' is dangerous, better use `mkstemp'
/usr/local/lib/libpython2.7.a(complexobject.o): In function `_Py_c_abs':
/root/Python-2.7.13/Objects/complexobject.c:214: undefined reference to `hypot'
/usr/local/lib/libpython2.7.a(complexobject.o): In function `_Py_c_pow':
/root/Python-2.7.13/Objects/complexobject.c:143: undefined reference to `hypot'
/root/Python-2.7.13/Objects/complexobject.c:144: undefined reference to `pow'
/root/Python-2.7.13/Objects/complexobject.c:145: undefined reference to `atan2'
/root/Python-2.7.13/Objects/complexobject.c:149: undefined reference to `sincos'
/root/Python-2.7.13/Objects/complexobject.c:148: undefined reference to `exp'
/root/Python-2.7.13/Objects/complexobject.c:149: undefined reference to `log'
/usr/local/lib/libpython2.7.a(complexobject.o): In function `complex_remainder':
/root/Python-2.7.13/Objects/complexobject.c:616: undefined reference to `floor'
/usr/local/lib/libpython2.7.a(complexobject.o): In function `complex_divmod':
/root/Python-2.7.13/Objects/complexobject.c:642: undefined reference to `floor'
/usr/local/lib/libpython2.7.a(floatobject.o): In function `float_is_integer':
/root/Python-2.7.13/Objects/floatobject.c:996: undefined reference to `floor'
/usr/local/lib/libpython2.7.a(floatobject.o): In function `float_as_integer_ratio':
/root/Python-2.7.13/Objects/floatobject.c:1748: undefined reference to `floor'
/usr/local/lib/libpython2.7.a(floatobject.o): In function `float_divmod':
/root/Python-2.7.13/Objects/floatobject.c:786: undefined reference to `floor'
/root/Python-2.7.13/Objects/floatobject.c:760: undefined reference to `fmod'
/usr/local/lib/libpython2.7.a(floatobject.o): In function `float_rem':
/root/Python-2.7.13/Objects/floatobject.c:728: undefined reference to `fmod'
/usr/local/lib/libpython2.7.a(floatobject.o): In function `_Py_double_round':
/root/Python-2.7.13/Objects/floatobject.c:1103: undefined reference to `round'
/root/Python-2.7.13/Objects/floatobject.c:1142: undefined reference to `floor'
/root/Python-2.7.13/Objects/floatobject.c:1156: undefined reference to `fmod'
/usr/local/lib/libpython2.7.a(floatobject.o): In function `float_pow':
/root/Python-2.7.13/Objects/floatobject.c:888: undefined reference to `floor'
/root/Python-2.7.13/Objects/floatobject.c:898: undefined reference to `fmod'
/root/Python-2.7.13/Objects/floatobject.c:863: undefined reference to `fmod'
/root/Python-2.7.13/Objects/floatobject.c:873: undefined reference to `fmod'
/root/Python-2.7.13/Objects/floatobject.c:922: undefined reference to `pow'
/usr/local/lib/libpython2.7.a(longobject.o): In function `PyLong_FromString':
/root/Python-2.7.13/Objects/longobject.c:1869: undefined reference to `log'
/usr/local/lib/libpython2.7.a(dynload_shlib.o): In function `_PyImport_GetDynLoadFunc':
/root/Python-2.7.13/Python/dynload_shlib.c:94: undefined reference to `dlsym'
/root/Python-2.7.13/Python/dynload_shlib.c:130: undefined reference to `dlopen'
/root/Python-2.7.13/Python/dynload_shlib.c:141: undefined reference to `dlsym'
/root/Python-2.7.13/Python/dynload_shlib.c:133: undefined reference to `dlerror'
/usr/local/lib/libpython2.7.a(signalmodule.o): In function `timeval_from_double':
/root/Python-2.7.13/./Modules/signalmodule.c:112: undefined reference to `floor'
/root/Python-2.7.13/./Modules/signalmodule.c:112: undefined reference to `floor'
/root/Python-2.7.13/./Modules/signalmodule.c:113: undefined reference to `fmod'
/root/Python-2.7.13/./Modules/signalmodule.c:113: undefined reference to `fmod'
/usr/local/lib/libpython2.7.a(posixmodule.o): In function `posix_forkpty':
posixmodule.c:(.text+0x273f): undefined reference to `forkpty'
/usr/local/lib/libpython2.7.a(posixmodule.o): In function `posix_openpty':
posixmodule.c:(.text+0x42f6): undefined reference to `openpty'
collect2: ld returned 1 exit status

when i run make install, it failed
is that my python version wrong, please help me?

base info:
centos6.2 x64
python-2.7.13
go version go1.7.4 linux/amd64

@sbinet
Copy link
Owner

@sbinet sbinet commented Aug 29, 2017

how did you install python?

AFAIK, centos-6 had python-2.6.

here is what I did in a docker container:

#> docker run -it --rm centos:6 bash
$> yum update -y
$> yum install -y centos-release-SCL
$> yum install -y python27 python27-python-devel
$> yum install -y gcc git
$> export PKG_CONFIG_PATH=/opt/rh/python27/root/usr/lib64/pkgconfig:$PKG_CONFIG_PATH

$> cd /
$> curl -O -L https://storage.googleapis.com/golang/go1.7.4.linux-amd64.tar.gz
$> mkdir /goroot
$> cd /goroot
$> tar -zxf ../go1.7.4.linux-amd64.tar.gz
$> export GOROOT=`pwd`/go
$> export PATH=$GOROOT/bin:$PATH

$> cd /
$> mkdir /gopath
$> cd /gopath
$> export GOPATH=`pwd`
$> go get -d github.com/sbinet/go-python
$> cd $GOPATH/src/github.com/sbinet/go-python
$> make install
go get  -compiler="gc" .

$> echo $?
0
@Ryan007
Copy link
Author

@Ryan007 Ryan007 commented Aug 30, 2017

FIRST OF ALL THANK YOU

install by source code and complied, it works fine.

@sbinet
Copy link
Owner

@sbinet sbinet commented Aug 31, 2017

ok.
so, what is the output of:

$> pkg-config --cflags --libs python-2.7
-I/usr/include/python2.7 -lpython2.7

?

@sbinet
Copy link
Owner

@sbinet sbinet commented Aug 31, 2017

(the linker error would seem to indicate that you are missing -lm and -ldl)

@leefreeopen
Copy link

@leefreeopen leefreeopen commented Sep 3, 2020

$> export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig

PKG_CONFIG_PATH should set to cgo. pkgconfig will give proper link options to build math lib.

I spent 2 days figuring out why ubuntu failed to make go-python.

in VSCode you can build and run by editing launch.json

"version": "0.2.0",
"configurations": [
    {
        "name": "Launch",
        "type": "go",
        "request": "launch",
        "mode": "auto",
        "program": "${fileDirname}",
        "env": {
            "PKG_CONFIG_PATH":"$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig"
        },
        "args": []
    }
]

}

$> whereis pkgconfig
pkgconfig: /usr/lib/x86_64-linux-gnu/pkgconfig /usr/lib/pkgconfig /usr/local/lib/pkgconfig /usr/share/pkgconfig

and find out python3.pc in located pkgconfig folders
usr/lib/x86_64-linux-gnu/pkgconfig$> ls
expat.pc geoclue-2.0.pc libssl.pc ncursesw.pc python-3.7m.pc sqlite3.pc uuid.pc xorg-wacom.pc
fontconfig.pc grilo-plugins-0.3.pc libxcrypt.pc openssl.pc python-3.7.pc tcl8.6.pc x11.pc xrender.pc
form.pc ice.pc menu.pc panel.pc python-3.8-embed.pc tcl.pc xau.pc xscrnsaver.pc
formw.pc libcrypto.pc menuw.pc panelw.pc python-3.8.pc tic.pc xcb.pc xt.pc
freetype2.pc libcrypt.pc ncurses++.pc pthread-stubs.pc python3-embed.pc tinfo.pc xdmcp.pc zlib.pc
gcalc-2.pc libpng16.pc ncurses.pc python-2.7.pc python3.pc

@leefreeopen
Copy link

@leefreeopen leefreeopen commented Sep 3, 2020

in cgoflags_unix.go file

// +build !windows

package python

// #cgo pkg-config: python-2.7
// #include "go-python.h"
import "C"

cgo pkg-config: python-2.7 --> pkg-config should know to find python-2.7.pc file path

sudo apt-get update -y
sudo apt-get install -y pkg-config

if don't install pkg-config , install pkg-config.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.
X Tutup