-
Notifications
You must be signed in to change notification settings - Fork 51
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
32-bit go compiler runs out of memory #3
Comments
Hi @dontpanic92, I confirm you that I have seen as well 32bit compilation break Travis. But not my own CI server, so basically 32bit compilation actually works. Here is an input, go 1.7 includes a new feature called binary-only packages. It was created for closed-source projects, but it could be very useful as an alternative way to distribute this package to users that did not succeed to compile. (I think also about the embedded world, related to the arm compilation in issue #4, which I am finalizing). It's not the best solution, as it is not compatible with 'go get' yet, but it's viable alternative for still using the library with low resources. And it's official. Also the build phase in the 'go get' is quite time-consuming. I could see one preferring this format when performing 'go get' within continuous integration and within the development cycle. Looking forward to hear your opinion. Cheers |
Really make sense. Even for 64 bit go users, it can save their time and it is also new-users friendly. If the binary-only packages don't satisfy users' needs, they can always compile it from source, though they may have to do a cross-compilation. I'm currently working on an alternative go backend for SWIG. We can consider making a binary release when these works are done. |
Sounds great. 👍 |
one thing, purely for information, I encountered by chance that the 'go build' tool actually recognises SWIG files, was that looked into or could it be relevant to the case ? |
I have taken a look at the binary only package, and unfortunately it doesn't work out of box though it looks like a very straight-forward method. We have the third-party dependencies, i.e the wx-libs in the Perhaps there are some ways to cope with this issue, it needs more investigation. |
Found solutions! The linker cannot found these libraries, so one of the solutions is that we also include these static libraries in the binary-only-package, and the users have to add LDFLAGS to specify the path where the libraries live. Another solution needs a little hack, but it doesn't require users to do any other work. We can use |
I kind of like them both 😃, it would be quite a heavier hand, but since it would be confined to special and limited contexts then either a more assuming or a more manually static solution will still be a viable solution |
Whether the latest version has resolved this issue ??? |
Actually no, but you can use the binary-only-packages, which are precompiled go packages (cross-compiling by a 64bit go compiler) that can be used directly by 32bit compilers. The go versions must match, i.e. if I compile the binary-only-packages using go 1.8.1, then the generated packages cannot be used by other versions of go. I have compiled the binary-only-packages for go 1.8, which can be found in the releases page. You can also compile these packages yourself (for example, for a different go version), just run 简言之就是用预编译好的包就行,但是Go版本得对的上 |
If it's any help, installing I think |
I've no idea on how to solve this. I'm not sure whether splitting the wrap file into multiple files can help -- golang will compile all go files in a package together so I don't think it works.
The text was updated successfully, but these errors were encountered: