I'm trying to build libpd on windows https://github.com/libpd/libpd
The problem I'm having is that when I build with the given "mingw_build.bat" - the libpd.dll that is built is 32 bit architecture.
How can I build using MingW so my resulting DLL is 64 bit architecture?
afaict there is no ready-made solution for this.
here are some generic hints (haven't tried them):
you would need to install mingw64 (the mingw_build.bat seems to assume that you are using mingw32)
fix the paths in mingw_build.bat
additionally set the C-compiler to one that produces 64bit binaries:
CC=x86_64-w64-mingw32-gcc
Related
I have a AIX machine which runs on power-pc-7 bigendian 64 bit I understand installing Go compiler is easy for Windows,Linux and Mac but if we want to install it on AIX then it involves different steps.
I downloaded the tar file supported for my AIX machine "go1.14.1.linux-pcc64le.tar.gz" using the link "https://dl.google.com/go/go.1.14.1.linux-pcc64le.tar.gz" after downloading this not sure how to proceed also I am using the littleendian one as I didn't any reference for bigendian .
All I wanted to do first before i start my project is to run a hello world Go program on my AIX machine does anyone have any idea on this ?
A little-endian program will not work on a big-endian operating system and vice-versa.
Two alternatives:
Download golang from http://www.bullfreeware.com/?searching=true&package=golang&from=&to=&libraries=false&exact=false&version=5 but they only have go v1.14 and it only works on AIX 7.2.
Download the source and follow the instructions on https://golang.org/doc/install/source -- it's not trivial as go is written in go nowadays, so you need to install go 1.4 first.
I'm working on hyperledger fabric sdk client on my computer which is running on Windows 10 64 bits but my problem is general with Go.
In order to do the go build command on my .go file, I had to install gcc. So I installed cygwin 64 bits for Windows.
In the bin repository, I had 3 differents .exe for gcc. I tried all of them :
gcc.exe : I have an error because this .exe is for windows 32 bits and go is 64 bits
x86_64-w64-mingw32-gcc.exe : I have an error, this .exe isn't able to find -lltdl
x86_64-pc-cygwin-gcc : This .exe isn't able to find -lmingwex and -lmingw32
The solution proposed on some subject was to install TDM-GCC-64, but when I do that, I have an error : ltdl.h not found
So if anyone have any idea in order to solve this issue, it will be great !
Thank you :)
PS : Sorry for my english
You're jumping to conclusions without thinking. Windows X64 has full support for 32-bit .exe, but of course you must avoid trying to mix 32-bit and 64-bit applications. You will need to look up how to install libtool or libltdl (.dll and .h) corresponding to whichever gcc version you end up choosing. It's unclear on the cygwin web page whether that is supported for cygwin64. Also, you may need to think about whether you want cygwin gcc and go or a mingw version.
I want to embed Mono into a 64 bit Mac OSX application (ported from Windows C++ where everything works fine). Since only 32 bit Mono is available pre-compiled for Mac OSX I managed to build my own 64 bit Mono release following this manual.
When debugging my 64 bit application in XCode the mono-embedding initialization fails with
"The assembly mscorlib.dll was not found or could not be loaded.
It should have been installed in the `usr/local/lib/mono/4.5' directory."
I can step into the code where this error is generated (domain.c - mono_init_internal()). Unfortunately my mono build obviously didn't produce a 4.5 directory. The only available ".NET-Version" seems to be 2.0: usr/local/lib/mono/2.0/mscorlib.dll exists, BUT NO 4.5 subdirectory at all.
Is there something I forgot in the build?
Thank you very much for your support.
An alternate solution is to take a Mono 32 bits distribution, build the 64 binaries (without the MCS), and merge the result back.
This is the way this project works in order to provide universal binaries. You can adapt it in order to replace the binaries instead of merging them.
Found it. The answer to my question "Is there something I forgot in the build?" is YES! Apparently, by default, ./configure; make; compiles all available .NET platforms (2.0, 3.5., 4.0, 4.5). After building you can find them all under {UnpackedTarBall}/mcs/class/lib - there are net_2_0, net_3_5, net_4_0 and net_4_5 subdirectories.
Unfortunately "make install" only installs .Net 2.0 as described in my original post.
I managed to install the other profiles by the following sequence:
$ cd {UnpackedTarBall}/mcs
$ make PROFILE=net_4_5 install
repeat and replace the above for other profiles (net_3_5, net_4_0). There are some helpful hints in {UnpackedTarBall}/mcs/README.
The processor I'm building for is 64 bit ARM. Will this tool chain work?
64-bit ARM support in GCC is separate backend, called AARCH64. So your compiler normally must be called something like gcc-aarch64-linux-gnu-*.
Still, your question is strange, because, if you will rename 64-bit ARM compiler executable to gcc-arm-linux-gnueabi (you may do it, why not), then answer will be yes.
The answer is no.
The tool chain you are referencing is old, and works for 32bit architectures.
You need this (ubuntu):
sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
I am trying to build valgrind (3.7.0) on a 64 bit host (running CentOS 5.8). I need to use valgrind in examining the performance of a 32 bit program (built on a 32 bit host, I need 32 bit because the program needs to run on 32 bit and 64 bit hosts).
The problem is that my 64 bit host did not have gcc, so I installed gcc using "sudo yum install gcc" with the Stanford University repo mirror (the default repos for this 64 bit host were unavailable and thus yum was timing out). This allowed me to build valgrind, and it worked for local stuff (e.g. "valgrind ls -l"), but failed when trying to run it for the 32 bit program I have built on another host. I finally figured out that the configure script for valgrind was detecting that I did not have 32 bit build support on the host (by running "configure --enable-only32bit" which reported "checking for 32 bit build support... no").
So how do I get 32 bit support for gcc, etc? I tried "yum search gcc | grep i386" and then installing whatever looked like 32 bit C stuff ("sudo yum install compat-glibc.i386 compat-libgcc-296.i386 compat-libstdc++-296.i386 compat-libstdc++-33.i386 libgcc.i386 libstdc++.i386 libstdc++-devel.i386 libstdc++44-devel.i386 edac-utils.i386 edac-utils.x86_64 nspluginwrapper.i386") but "configure --enable-only32bit" still reports no 32 bit support.
PS: The yum.conf looks pretty minimal, i.e. no excludes. The only odd thing in it is "installonly_limit = 5"
OK, here is the scoop, thanks to Error "gnu/stubs-32.h: No such file or directory" while compiling Nachos source code
The short answer is to install glibc-devel.i386 (on CentOS 5.8 anyway... for different distros it has different names, e.g. glibc-devel.i686, libc6-dev-i386, etc), possibly in addition to the other packages I listed above (I did not uninstall those to see if glibc-devel.i386 was sufficient by itself).
I arrived at the right question to search for by examining the configure script and seeing that it tries to compile a minimal C program with "-m32" and if that fails then the configure script reports "no 32 bit support". So I created the classic HelloWorld C program and compiled it ("cc -m32 hello.c"). This complained of a missing header file "gnu/stubs-32.h". So a google search on "what package has gnu/stubs-32.h" took me to the stackoverflow page I cite above.
Try:
yum install glibc-devel.i686
if this doesn't work then check this solution: How to compile a 32-bit binary on a 64-bit linux machine with gcc/cmake