OS 10.6 and 10.5 have previously been used; 10.4 has never been tested. 10.3 and older are PPC-only. Compiling with support for older versions of Mac OS (This section is out of date or incorrect) By default compiling C code on OS 10.6+ will produce binaries that won't run on OS 10.4 and 10.5. Building Mac OSX.apps for Sys 10.6 and 10.8 with Cmake using 10.7.5 on the command line. Hello: I am trying to build an app to be compatible with Mac OSX systems 10.6, 10.7, and 10.8 using the command. I'm having a C linking problem on Mac OS X 10.6 (Snow Leopard). It is the same as the one described in the following Intel article.
- Mac Os C++ Compiler
- C++ For Mac Os X
- C Compiler For Mac Os X 10.6 Os X 10 6
- C Compiler For Mac Os X 10.6 10 6 Snow Leopard
- C Compiler For Mac Os X 10.66 Snow Leopard
Compiling PGPLOT on Mac OS X
a guide for the perplexed
Benjamin Weiner, May 2012
PGPLOT
PGPLOTis a library of plotting subroutines written by Tim Pearson,callable from Fortran and C,that have been used in a variety of astronomy programs, andsome other software packages.PGPLOTis free for non-commercial use and downloadable as source.Although a new version has not appeared for some time, it is convenient, flexible, and many people anda number of useful programs depend on it.OS X issues
Historically you typically installed PGPLOT by either compilingfrom source or installing a software package that includeda compiled library (libpgplot.a) and various other stuff likefonts. This used to be fairly easy on Linux or Mac, butstarting around OS X 10.6 and/or 64-bit CPU Macs, I and otherpeople had difficulty compiling PGPLOT on OS X. Typicallyone gets an error message like: /usr/bin/ranlib: archive member:libpgplot.a(grdate.o) cputype (16777223) does not match previousarchive members cputype (7) (all members must match).If you googlearound you can find lots of puzzled people, and a number of webpages that suggest workarounds (not all of which are specificallyfor 10.6; none have solved theproblem for me). I've diagnosed the issue and provide herea couple of configuration files which you can add to a regularPGPLOT source distribution so it will compile correctly.
Instructions for fixing and installing PGPLOT
Mac Os C++ Compiler
- You will need a gcc compiler - Apple's gcc compiler is known to work and is installed with Xcode - and your favorite Fortran compiler, either g77 or gfortran. If you don't have the compilers installed look at http://hpc.sourceforge.net.
- Download PGPLOT from Tim Pearson's site.
- Make the parent source directory, e.g. sudo mkdir /usr/local/src
- cd to this parent source directory, e.g. cd /usr/local/src , copy PGPLOT distribution there and untar it, which will create a pgplot/ subdirectory: sudo tar zxvf pgplot5.2.tar.gz
- NEW STEP: download a tar archive of my config files pgplot_macosx_conf.tar and untar them in the /usr/local/src/pgplot directory: cd /usr/local/src/pgplot ; sudo tar xvf pgplot_macosx_conf.tar. This will make a subdirectory called sys_macosx with three configuration files.
- make a directory in which to compile the library, e.g. sudo mkdir /usr/local/lib/pgplot
- cd to this compilation directory, e.g. cd /usr/local/lib/pgplot
- choose device drivers: sudo cp /usr/local/src/pgplot/drivers.list /usr/local/lib/pgplot
- edit drivers.list to uncomment the drivers you want (remove the ! at the beginning of each desired line). I recommend /GIF, /NULL, /PS, /VPS, /CPS, /VCPS, /XTERM, /XWINDOW, and /XSERVE. Trying /PNG or /TPNG will cause a compilation failure; a note on how to fix this is below.
- run the makemake configuration script using one of my new config files: choose one depending on whether you will compile other programs with g77 or gfortran and in 32 or 64 bit.
- EITHER: sudo /usr/local/src/pgplot/makemake /usr/local/src/pgplot macosx g77_gcc_32
- OR: sudo /usr/local/src/pgplot/makemake /usr/local/src/pgplot macosx gfortran_gcc_32
- OR: sudo /usr/local/src/pgplot/makemake /usr/local/src/pgplot macosx gfortran_gcc_64
- Compile the library and demo programs: sudo make all
- If you have a problem compiling the demo programs, you can skip them and just make the libraries with sudo make lib grfont.dat pgplot.doc pgxwin_server , but this should not usually happen.
- If you need the library libcpgplot.a for compatibility with C programs, you can make it with sudo make cpg.
- If you mess up at some point and want to start over, in the library directory do a sudo make clean ; sudo rm libpgplot.a . This will remove any intermediate partially-compiled libraries.
If you ran sudo make cpg you will also have libcpgplot.a. https://treekeen845.weebly.com/paragon-disk-wiper-15-for-mac-os-x.html.
Compiling and running programs
To compileprograms using it, link to /usr/local/lib/pgplot/libpgplot.a/usr/X11/lib/libX11.dylibFor example g77 -o myprog myprog.f /usr/local/lib/pgplot/libpgplot.a/usr/X11/lib/libX11.dylib
To run programs with PGPLOT, don't forget to set the environmentvariable PGPLOT_DIR to the library directory. Otherwise itcan't find the fonts at runtime. This is best done in a startup filelike .bash_profile or .cshrc, for example for bash: export PGPLOT_DIR=/usr/local/lib/pgplot ; and for csh: setenv PGPLOT_DIR /usr/local/lib/pgplot
You must use the same compiler foryour program that you used for the library: g77 OR gfortran. Youcould compile PGPLOT libraries with the two compilers in two differentdirectories and use one or the other as needed.
The /xs device should work when run from a mac Terminal, but /xtwon't. /xt will work when run from an xterm under X11.
If you want to get the /PNG driver to work, uncomment it indrivers.list, and after running makemake andbefore compiling, edit the makefile to comment out the following line:pndriv.o : ./png.h ./pngconf.h ./zlib.h ./zconf.h . This hasan incorrect location for the PNG library header files which causescompilation to fail.
If for some reason you need to make the libpgplot.so shared object (dynamically loaded) library, you should be able to do this by uncommentingthe lines in the .conf file (gfortran_gcc_32.conf or similar)that read SHARED_LIB='libpgplot.so' and SHARED_LD='gcc -shared -o $SHARED_LIB', before running the 'makemake' step.
Configuration files on github
The new configuration files and these instructions are also availablefrom my github page for PGPLOT configuration. You can fork them or issue a pull request if you have modifications.Why this works
Mac OS X for 64-bit machines allows you to run 32 or 64 bitbinaries. But the inexplicable error message from ranlib above iscomplaining that it can't mix object files compiled for 32 bit cputype(i386) and 64 bit (x86_64) into a single object library archive, thelibpgplot.a file.The problem is that PGPLOT source is actually a mix of Fortran andC. The Fortran compilers compile into 32-bit by default (g77is only 32 bit capable) and the C compiler now compiles into 64 bit bydefault. So ranlib has to mix 32 and 64 bit object files and it can'tdo that. This is why it only became a problem with 64 bit Macs andOS X 10.6. The new config files force the C compiler to compile in 32bit with the '-m32' option. So then the files are all 32-bitand it compiles ok. For 64 bit the config file forces gfortran tocompile in 64 bit with '-m64'.With Apple's C compiler you can also use '-arch i386' and '-archx86_64' to force 32 or 64 bit. The '-m32' and '-m64' options shouldwork with a non-Apple gcc, although I have not tested them.
Other notes: I have not tested all the more exotic drivers and library locations, and if you do something arcane like use aPGPLOT-Tk interface, it may require adjustment.See above for how to get the PNG driver to work by editing the makefile.
I tested this on OS X 10.6 Snow Leopard, and have not tested PGPLOT on OS X 10.7 Lion myself, although users have reported it working on later OSes including Mavericks. I have a reportthat forcing the 64-bit option by using a configuration similar to'gfortran_gcc_64' will work, so try that.
Where to get compilers
C++ For Mac Os X
Apple's gcc C compiler comes with Xcode, their development kit. Xcodewas on my OS X install CDs, but is not installed by default. You canalso download it from Apple.Mac OS X versions of gfortran, g77, and non-Apple versions of gcc can be downloaded from http://hpc.sourceforge.net/.The HPC page does not have quick links to binaries of the compilersfor older versions of Mac OS X, but they are in the file tree athttp://sourceforge.net/projects/hpc/files/hpc/. Some other useful information about Fortran and Mac is listed here.
C Compiler For Mac Os X 10.6 Os X 10 6
Contact:
My software page.
Back to my home page.
C Compiler For Mac Os X 10.6 10 6 Snow Leopard
Benjamin Weiner, email bjw at as.arizona.edu
C Compiler For Mac Os X 10.66 Snow Leopard
29 May 2012, updated 6 June 2012, 10 April 2013, 18 Nov 2014