Exe's compilation on Solaris 11 env using gcc - gcc

I am on Solaris 11 environment and gcc-3.4.6 is installed on it. The problem is that I am not able to compile exe's there, The error is
-sh: gcc: gcc: cannot execute [Invalid argument]
even if I write gcc only it gives the same error. Kindly help.

Unlike in Solaris 10, on Solaris 11 the GCC is not installed by default.
Fear not.
By far the easiest is to use IPS to install it using the commands below (while being root or other superuser):
pkg install pkg://solaris/developer/build/gnu-make
pkg install pkg://solaris/developer/build/make
pkg install pkg://solaris/developer/gcc-45
pkg install pkg://solaris/system/header
pkg install pkg://solaris/developer/build/autoconf
pkg install pkg://solaris/developer/build/automake-110
This will give you all the tools you typically need to build various open source software packages.
Note that some of the packages have a version number in the package name itself, e.g. gcc-45. You may be able to find even later versions in the package repository, for example for Solaris 11.2 Beta you'll find you have a choice of GCC 4.5, 4.7 or 4.8. The same applies to automake which is now also available in v1.11.
(recipe from my posting here)

Related

C:\cygwin64\bin does not have gcc.exe, g++.exe

I am using Mingw with code:blocks for years but now I need to to use cygwin64 with code blocks.
So I installed cygwin64 (for 64-bit windows) and the folder C:\cygwin64\bin does not have gcc.exe or g++.exe, while I installed them along with other packages indicated here (NOTE: I do not know if the command prompt runs the gcc/g++ from mingw or from cygwin?)
I do not know if the gcc.exe or g++.exe did not get installed because i also have mingw.
There are many youtube tutorials for this, but they all download the 32-bit version of cygwin. I would like to use the 64-bit. Has anyone done this?
Note that i followed the code:blocks wiki on how to install cygwin, but it does not say whether I need to install the 32 or 64-bit, and there are many points where it says " add [Cygwin]\usr\X11R6\bin (if required)" and ""-3" may need to be changed to "-4"". Unclear documentation!
the gcc compiler is included in the gcc-core package
$ cygcheck -p bin/gcc
Found 10 matches for bin/gcc
gcc-core-10.2.0-1 - gcc-core: GNU Compiler Collection (C, OpenMP)
...
This is valid for both 32bit and 64bit versions of Cygwin.
Fixed it by uninstalling the cygwin64 altogether, and I installed the cygwin 32-bit version. Tutorials on how to install 32-bit version can be found here and here This also installed gcc.exe, g++.exe files in the C:\cygwin\bin folder.
With compiler settings:

Can not find LLVM library files

I have been trying to set up llvm on my linux. I am running fedora. I have tried installing llvm through dnf install llvm and it appears to be installed on my computer. However, in my c++ code any header I try to include from it shows error. I am currently trying to do it manually but if you have any answers I would be grateful if you share it with me. Thanks.
You can use the following commands to find where are the include directory and LLVM libraries in your Linux system. Then they can be included into your compilation command.
llvm-config --includedir
llvm-config --libfiles
I don't use Fedora, but in my Linux Mint 20, these commands return:
/usr/lib/llvm-10/include
/usr/lib/llvm-10/lib/libLLVM-10.so

Run or use GCC without install

Can I use GCC for e.g GCC4.0.3 without installation
In my macOS I have installed Clang xcode , and GCC from Homebrew
In my Linux they are installed as well
But I want to use GCC (Specially older version) besides most updated version
Like NVM that manage Node version and it lets you install many nodejs with different version on your system
I want to use GCC4 specially for science and compiling Old FORTRAN to make my Source codes run and see the results
In new OS both macOS and Linux when you install gcc it will install most updated and that is not useful for old fortran or old codes.
So In my solution i think its better to use gcc without install or even install gcc to custom directory folder and copy the codes in that directory and compile them but not to install as wide system and make incompatibility with default GCC and CLANG on system
Thanks in advance

Cabal installing HsOpenSSL w/ 64-bit OpenSSL libs on Windows Server 2008

I have a haskell project that I'm trying to build on Windows 2008 64-bit. One of the dependencies is HsOpenSSL (not be to confused w/ hopenssl). Per the GHC docs, in order for this install to go smoothly one must install a binary distribution of openssl from here: http://slproweb.com/products/Win32OpenSSL.html and link during the cabal install process like this:
cabal install HsOpenSSL --extra-include-dirs="c:/OpenSSL-Win32/include" --extra-lib-dirs="c:/OpenSSL-Win32"
Now the problem arises when I attempt to install the 64-bit binary distribution and install HsOpenSSL w/ it.
cabal install HsOpenSSL --extra-include-dirs="c:/OpenSSL-Win64/include" --extra-lib-dirs="c:/OpenSSL-Win64"
This still throws the error of:
Resolving dependencies...
Configuring HsOpenSSL-0.10.3.5...
cabal.exe: Missing dependencies on foreign libraries:
* Missing C libraries: eay32, ssl32
This problem can usually be solved by installing the system packages that
provide these libraries (you may need the "-dev" versions). If the libraries
are already installed but in a non-standard location then you can use the
flags --extra-include-dirs= and --extra-lib-dirs= to specify where they are.
Failed to install HsOpenSSL-0.10.3.5
cabal.exe: Error: some packages failed to install:
HsOpenSSL-0.10.3.5 failed during the configure step. The exception was:
ExitFailure 1
After inspecting the directories (OpenSSL-Win32 and OpenSSL-Win64) the directories are apparently the exact same with one small difference. There is no MinGW folder in OpenSSL-Win64/libs/, but there is one in OpenSSL-Win32/libs/. After removing this directory from the OpenSSL-Win32 install directory, HsOpenSSL still installs fine when linked w/ the 32-bit libs. So I don't think that difference seems to matter. All that to ask, Is HsOpenSSL compatible with openssl's 64-bit libs? Is there anything obviously wrong about what I'm doing?
I'm using Cygwin, cabal 1.18.0.2, ghc 7.6.3, openSSL version 1.0.1e
It's four years later, but I just encountered the same problem so I guess its still relevant.
I solved it by downloading the latest Win64OpenSSL binaries, and manually cloning the HsOpenSSL repo at https://github.com/vshabanov/HsOpenSSL.
Then I opened the HsOpenSSL.cabal file and changed line 94 from
Extra-Libraries: eay32 ssl
to:
Extra-Libraries: libeay32 ssleay32
Finally, open cmd and make the repo your current directory. Then use cabal configure --extra-include-dirs="c:/OpenSSL-Win64/include" --extra-lib-dirs="c:/OpenSSL-Win64/lib" and cabal install to install the library.

Installing gcc 4.8 on Debian

I want to start playing around with some of the newer C++11 features and it appears that the best support for this is with gcc 4.8, and Squeeze ships with 4.4.5.
However, I don't want to cause any "damage" to my current setup. What's the best way to get both versions of gcc running side-by-side? I'm concerned mostly at the large number of dependencies and that taking them all in to my current system may render it unstable.
Has anyone managed to do this, and what are the steps involved?
Failing that, I'll probably just create a VM and run an "unstable" Debian under that but it's a less-than-ideal solution.
If you install GCC from source just make sure you don't install it to /usr and it won't mess anything up. If you install it as your own user, not root, then there is zero chance of messing up the system.
See http://gcc.gnu.org/wiki/InstallingGCC for the almost-idiot-proof minimal configuration.
I have various versions built as my user and installed in ~/gcc/4.X for various X.
The only thing to be aware of using that set up is that the shared libraries for the new version aren't in the dynamic linker's default search path, so you need to use LD_LIBRARY_PATH or some other solution to ensure executables find the libs from 4.8, see the libstdc++ FAQ and the page it links to in the manual
I use a wrapper script call g++11 which simply calls the new version of GCC with -std=gnu++11 and passes a flag to the linker telling it to set the path to the 4.8 libs in the executable:
$HOME/gcc/4.8/bin/g++ -Wl,-rpath,$HOME/gcc/4.8/lib64 -std=gnu++11 -Wall -Wextra -g "$#"
I had the same problem, and didn't want to fully upgrade to testing.
Jessie (testing) now contains g++-4.8 which is compliant with C++11.
I used apt-pinning in the following way:
A source to jessie was added to /etc/apt/sources.list:
deb http://ftp.uk.debian.org/debian/ jessie main non-free contrib
/etc/apt/preferences was edited as such:
Package: *
Pin: release n=wheezy
Pin-Priority: 900
Package: gcc*
Pin: release n=jessie
Pin-Priority: 910
Then,
$ sudo aptitude update
$ sudo aptitude install gcc/jessie
At which point I selected the second presented option to resolve dependencies fully.
Debian has the package under the name gcc-4.8 (or for the c++ compiler, g++-4.8). Installing those packages will not mess up your OS, as long as you do not rename it to g++. The package is listed as experimental though.
Information on the package is here.
Update: g++-4.8 is now in testing, but an updated package is in unstable
Quick ones:
Just upgrade to testing, it is rock-solid and offers you several concurrent gcc versions. Similar for Ubuntu, on 12.10 I have gcc/g++ 4.4, 4.5, 4.6 and 4.7 in parallel.
Try the Debian backports archive, it may have a port of gcc 4.8.
Use virtualization: I prefer libvirt / kvm which is incredibly lightweight on Linux as it is kernel based. My amd64 server has two other 32 bit installations for that very reason.
Not really a SO question...
Have you tried chroot to install a newer Debian flavor?
you can play around without fear to break you working system.
install a Debian flavor that support you gcc version desired.
install a gcc version manually without affecting you working system.
http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Linux/Chroot

Resources