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

Build Dummy Example Failed in MacOS M1 #318

Open
dusty-cjh opened this issue Mar 19, 2023 · 3 comments
Open

Build Dummy Example Failed in MacOS M1 #318

dusty-cjh opened this issue Mar 19, 2023 · 3 comments

Comments

@dusty-cjh
Copy link

dusty-cjh commented Mar 19, 2023

ENV

MacOS 2020 M1 chip

python3.9 (system)

Replication

# prepare
mkdir dummy && cd dummy
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
go env -w GOBIN="/usr/local/go/bin/"

# init project and install as python package
go mod init dummy.com/dum
go get github.com/go-python/gopy/_examples/hi

# error happened here
gopy build -output=out -vm=python3 github.com/go-python/gopy/_examples/hi

Output:

--- Processing package: github.com/go-python/gopy/_examples/hi ---

--- building package ---
gopy build -output=out -vm=python3 github.com/go-python/gopy/_examples/hi
goimports -w hi.go
go build -mod=mod -buildmode=c-shared -o hi_go.so .
cmd had error: exit status 1  output:
# dummy.com/dum/out
/usr/local/go/pkg/tool/darwin_arm64/link: running clang failed: exit status 1
ld: warning: directory not found for option '-L/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib'
ld: library not found for -lpython3.9
clang: error: linker command failed with exit code 1 (use -v to see invocation)


2023/03/19 13:35:14 error dispatching command: exit status 1

Questions

The path /App****/Python3.framework/Versions/3.9/lib actually doesn't exist in my PC, so I think maybe it's because somewhere point to a wrong $PATH.

I found where the true python lib path is, and added it to $PATH, since this error seems due to lib not in the path:

sudo find /Library -name "python*"

# so here I got the python3 lib path in my PC
export PATH=/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib:$PATH

# re-run
gopy build -output=out -vm=python3 github.com/go-python/gopy/_examples/hi

# still the error output
--- Processing package: github.com/go-python/gopy/_examples/hi ---

--- building package ---
gopy build -output=out -vm=python3 github.com/go-python/gopy/_examples/hi
goimports -w hi.go
go build -mod=mod -buildmode=c-shared -o hi_go.so .
cmd had error: exit status 1  output:
# dummy.com/dum/out
/usr/local/go/pkg/tool/darwin_arm64/link: running clang failed: exit status 1
ld: warning: directory not found for option '-L/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib'
ld: library not found for -lpython3.9
clang: error: linker command failed with exit code 1 (use -v to see invocation)


2023/03/19 13:49:54 error dispatching command: exit status 1

Am I doing any step wrong? could you give me some advice, thanks! 😊

@jieya907
Copy link

I got around this by passing the absolute path for the python binary to the -vm flag

@jieya907
Copy link

But the error I'm seeing is

ld: warning: ignoring file /Users/somename/miniconda3/lib/libpython3.10.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
Undefined symbols for architecture x86_64:
  "_PyComplex_AsCComplex", referenced from:
      __cgo_19fe0cd99635_Cfunc_PyComplex_AsCComplex in 000001.o
     (maybe you meant: __cgo_19fe0cd99635_Cfunc_PyComplex_AsCComplex)
  "_PyComplex_FromDoubles", referenced from:
      __cgo_19fe0cd99635_Cfunc_PyComplex_FromDoubles in 000001.o
     (maybe you meant: __cgo_19fe0cd99635_Cfunc_PyComplex_FromDoubles)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)```

Should we maybe pass in some flags specifically for arm?

@saurav-orca
Copy link

Can you try setting the env variable - ARCHFLAGS=-arch arm64?
Also try GOARCH=arm64 and GOOS=darwin

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

No branches or pull requests

3 participants