error: C compiler cannot create executables (GEOS, basemap) - c

I am currently getting the following error when attempting to get basemap-1.0.7 to work on my MAC OS v10.7.3:
error: C compiler cannot create executables
I downloaded basemap-1.0.7.tar.gz from here, and upon installation, I followed the numbered instructions in the README file:
0) Install pre-requisite python modules numpy and matplotlib.
1) Then download basemap-X.Y.Z.tar.gz (approx 100 mb) from
the sourceforge download site, unpack and cd to basemap-X.Y.Z.
2) Install the GEOS library. If you already have it on your
system, just set the environment variable GEOS_DIR to point to the location
of libgeos_c and geos_c.h (if libgeos_c is in /usr/local/lib and
geos_c.h is in /usr/local/include, set GEOS_DIR to /usr/local).
Then go to step (3). If you don't have it, you can build it from
the source code included with basemap by following these steps:
> cd geos-3.3.3
> export GEOS_DIR=<where you want the libs and headers to go>
A reasonable choice on a Unix-like system is /usr/local, or
if you don't have permission to write there, your home directory.
> ./configure --prefix=$GEOS_DIR
> make; make install
0) Done: I use anaconda, so both import numpy and import matplotlib work in an interactive session of ipython.
1) Done: basemap 1.0.7 is downloaded, unpacked, and I have changed my working directory to to Downloads/basemap-1.0.7/
2) Problem: I do not have the GEOS library. Therefore, I followed the instructions as per the README file:
cd geos-3.3.3
export GEOS_DIR=/Users/ged/anaconda/lib/python2.7/site-packages/
./configure --prefix=$GEOS_DIR
The ensuing terminal output is:
checking build system type... i386-apple-darwin11.3.0
checking host system type... i386-apple-darwin11.3.0
checking target system type... i386-apple-darwin11.3.0
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... no
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/Users/ged/Downloads/basemap-1.0.7/geos-3.3.3':
configure: error: C compiler cannot create executables
See `config.log' for more details
The config.log file is a bit long to put it here, so I've made it available here
I have tried installing GEOS through GDAL 1.11, and I also looked into upgrading to xcode 4.6.3 but, to be honest, I feel a little out of my depth.
I'm getting the following message:
error: C compiler cannot create executables
Could you please provide some insight on how to solve this issue?
Thanks in advance!

Related

Mac OS Sierra: checking whether the C compiler works... no

I want to compile a C library on my MacOS Sierra system, but I am getting the following error:
checking for a BSD-compatible install... /usr/local/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/local/bin/gmkdir -p
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... clang
checking whether the C compiler works... no
configure: error: in `/Users/macuser/Downloads/libr':
configure: error: C compiler cannot create executables
I tried setting the symlink as suggested in OS X 10.9.2: checking whether the C compiler works... no :
sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeD‌​efault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.‌​11.xctoolchain
I tried setting the CC path and install xcode as in https://apple.stackexchange.com/questions/216573/cant-compile-source-code-on-mac :
export CC=clang
xcode-select --install
and accept the license. But nothing worked. Are there any new steps to consider on Sierra to get the command line tools running properly?
Start Xcode, select 'Preferences', then 'Locations'. You'll notice a dropdown control at 'Command Line Tools'. Select the newest version, close the dialog window, then call brew again. Restart your computer and run it again.

trying to install valgrind but stuck at make valgrind, how?

This might be a silly question, actually I have just started with it.
I am following a tutorial to LCTHW
and I am trying to install valgrind, the author specifies steps:
1) Download it (use wget if you don't have curl)
curl -O http://valgrind.org/downloads/valgrind-3.6.1.tar.bz2
use md5sum to make sure it matches the one on the site
md5sum valgrind-3.6.1.tar.bz2
2) Unpack it.
tar -xjvf valgrind-3.6.1.tar.bz2
cd into the newly created directory
cd valgrind-3.6.1
3) configure it
./configure
4) make it
make
5) install it (need root)
sudo make install
I am stuck at step 4, what to make here? What should the command look like? I have made c programs before but which specific file in here do I need to specify?
This is what I get when I run make:
Blackbeard#PC-DEV-A179:~/valgrind-3.6.1$ make
make: *** No targets specified and no makefile found. Stop.
Edit:
As pinted out by user43250937, ./configure is not working properly, I get the following:
$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether ln -s works... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking whether gcc and cc understand -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking for ranlib... ranlib
checking for a sed that does not truncate output... /bin/sed
checking for ar... /usr/bin/ar
checking for perl... /usr/bin/perl
checking for gdb... /usr/bin/gdb
checking dependency style of gcc... gcc3
checking for diff -u... yes
checking for a supported version of gcc... ok (4.8.2)
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a supported CPU... ok (x86_64)
checking for a 64-bit only build... no
checking for a 32-bit only build... no
checking for a supported OS... ok (linux-gnu)
checking for the kernel version... unsupported (3.13.0-49-generic)
configure: error: Valgrind works on kernels 2.4, 2.6
I am running Ubuntu 14.04 LTS
Step 3 (configure), likely didn't complete correctly due to missing dependecies/libraries, check the output of that command.
Edit: You need a newer version of Valgrind that supports kernel 3.x, now they are at valgrind-3.10.1, that will work.
From your output:
configure: error: Valgrind works on kernels 2.4, 2.6
Did you download a ridiculously old copy of valgrind? Also, on Ubuntu, you can just
sudo apt-get install valgrind

Build cross compiler - error: libmpfr not found

I am trying to build a cross compiler. I follow this tutorial: http://wiki.osdev.org/GCC_Cross-Compiler
I installed binutils in in /opt/cross. now I try to install gcc-4.7.4 with mpfr-2.4.2. I used commands to prepare and configure:
export PREFIX="$HOME/opt/cross"
export TARGET=i686-elf
export PATH="$PREFIX/bin:$PATH"
mv gmp-4.3.2 gcc-4.7.4/gmp
mv mpfr-2.4.2 gcc-4.7.4/mpfr
mv mpc-0.8.1 gcc-4.7.4/mpc
# i am in usr/src directory
mkdir build-gcc
cd build-gcc
../gcc-4.7.4/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ --without-headers
Now, i use make all-gcc to build, but I receive following error: configure: error: libmpfr not found or uses a different ABI (including static vs shared).
Why is this happening and how I can fix it?
Thanks!
You can check how "configure" checks if libmpfr is available (where configure looks for it) or just give the path to your libmpfr - with probably --enable-libmpfr=/path/ or something like this.
The second option is to give gcc configure option to disable using of mpfr (--disable-mpfr ?)
I assume that you are trying to compile gcc for another architecture than your host. Maybe gcc configure found libmpfr but it is mpfr from your host and not from your target architecture? You may take a look into config.log file if there is any and check which mpfr is using by configure.
Did you try to link libraries with export LD_LIBRARY_PATH=./gcc-4.7.4/mpfr/.libs

Compiling glib2 from the scratch

i want to compile glib2 for a specific platform. It needs gettext, so I passed where the gettext libraries are. For example:
$ ./configure CC=.. CFLAGS=... -prefix=.. LDFLAGS="-L../libconv/lib/ -L../gettext/usr/local/lib" --enable-shared=no
but it returns:
....
checking libintl.h usability... no
checking libintl.h presence... no
checking for libintl.h... no
configure: error:
*** You must have either have gettext support in your C library, or use the
*** GNU gettext library. (http://www.gnu.org/software/gettext/gettext.html
Do you have any idea about why it doesn't detect gettext?
Thanks.
While "installing" everything in a directory under your home directory, you needed to add the "bin" subdirectory of the --prefix directory to your $PATH before running configure.
download the latest package from here:
http://ftp.gnu.org/pub/gnu/gettext/
compile it and run your configure command again and it should fix the issue.

C compiler cannot create executables when trying to build Binutils

I am trying to build Linux From Scratch, and now I am at chapter 5.4, which tells me how to build Binutils. I have binutils 2.20's source code, but when I try to build it:
time { ./binutils-2.20/configure --target=$LFS_TGT --prefix=/tools --disable-nls --disable-werror ; }
it gives me an error:
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-lfs-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... gawk
checking for gcc... GCC
checking for C compiler default output file name...
configure: error: in `/media/LFS':
configure: error: C compiler cannot create executables
See `config.log' for more details.
You can see my config.log at pastebin.com: http://pastebin.com/hX7v5KLn
I have just installed Ubuntu 10.04, and reinstalled GCC and installed G++. Also, the build is done by a non-root, non-admin user called 'lfs' (which is also described in Linux From Scratch), and on a different partition than where the system is installed.
Can anyone help me? Thanks
The /tools directory didn't exist. I created it and now it compiles fine.
Try:
export CC=/usr/bin/gcc
before running configure.

Resources