I want to build an application on Centos 5.6 64bit as a 64bit application and link it with a 32bit library.
How can i do this and what is the switches i need to pass to the gcc to compile and link.
Thanks.
You cannot. A 64 bit application must link to 64 bit libraries. If the library you must use is 32 bit, you must compile your application 32 bit as well.
Related
I am developing C++ code with OpenCV package for heterogeneous targets (windows/Mac/Linux - 32bit and 64 bit).
Libraries Required to build my c++:
MingW
OPenCV
and Both are built for 64 bit.
I am able to generate 64 bit exe/dll/.so's on the 64 bit build environments.(Built opencv and mingw for 64 bit) and similarly for 32 bit.
Is it possible to create a 32 bit applications in 64 bit dev environment in windows with Mingw and OpenCV? A note here is that, my supporting sdk's or libraries are built with 64 bit.
In Win64 targetting Win32 you can do that by installing the correct mingw package from here.
Note the "Toolchains targetting Win32".
For example, for 4.9.2 you can take this. (I know as a fact that it works for OpenCV)
In the comments you got you can find also a solution for Linux64 targeting Linux32.
I wish to generate 32 bit Fortran binaries on my 64 bit Win 7 Pro machine (using 64 bit gfortran in Cygwin) so I can then run them on my 32 bit Win 7 machine (using 32 bit Cygwin).
Is this doable with a switch at compile and/or link time?
You can cross-compile your code, but you'll probably need a cross-toolchain (i.e. cross mingw/Cygwin). Then you can add --target= to specify e.g. i686 or i586, depending on what the toolchain supports.
My guess is that it would be easiest to use a 32bit Cygwin installation instead and do a "native" build.
The download page for cmake only shows a 32 bit installer for windows. Any idea how to install it on 64 windows systems.
There is really no reason for a 64bit native CMake. CMake is only building the configuration, so you can use it to build configurations for 64bit software, even with the 32bit version.
That being said, if you truly want a 64bit native version, you could always download the source and compile it. There is no 64bit installer, however.
The 32 bit version works perfectly even on 64 bit Windows. I've used it, and it works.
EDIT: It looks like CMake is now available in both 32-bit and 64-bit flavors. Just go to their website and you can get the 64-bit version.
A 64-bit Windows installer is now available from the download page: https://cmake.org/download
I want to build static library, that will be used with 64bit Qt Creator. I can build this lib(freetype) on Windows, or Mac, it doesn't matter. On Windows I've found mingw-64 and here is a question- is it neccessary to have 64bit version of make(for makefiles) from mingw64, or there is some way to just swap mingw32-g++ with 64bit version, and use old make from mingw32? Am I misunderstanding sth? I've already built 32bit version of freetype.a and it works fine on ubuntu and windows, where I have 32bit Qt Creator(and for Mac there is only 64bit Qt Creator, I don't know why...)
Thanks.
The make system doesn't care whether mingw is 32 or 64 bit. All it cares is that it can call off to the program. If you can run these programs from a command line, so can make.
I'm trying to build Qt in a shared 64 bit mode on my 32bit XP system.
I can configure the QMake and start the 64bit build. The problem is that when the build starts, the first thing that happens in that the process builds ui, moc and rcc utility compilers in 64 bit mode, then tries to run them on my 32bit machine.
Does anyone know how to configure the build so that it does not build those compilers first?
I don't think Qt support cross-compilation on Windows.
I suggest doing it the other way around, by using a 64bit machine (and a 64 bit version of Windows) to build the 64bit and 32bit versions.