octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GraphicsMagick linkage error on Mac OS X 10.9


From: Daryl Lee
Subject: Re: GraphicsMagick linkage error on Mac OS X 10.9
Date: Mon, 13 Jan 2014 20:39:54 -0700

On Jan 13, 2014, at 3:06 PM, Ben Abbott <address@hidden> wrote:

> 
> On Jan 13, 2014, at 5:04 PM, Ben Abbott <address@hidden> wrote:
> 
>> On Jan 12, 2014, at 7:30 PM, Ben Abbott <address@hidden> wrote:
>> 
>>> On Jan 12, 2014, at 5:52 PM, Daryl Lee <address@hidden> wrote:
>>> 
>>>> On Jan 12, 2014, at 3:44 AM, c. <address@hidden> wrote:
>>>> 
>>>>> 
>>>>> On 12 Jan 2014, at 00:07, Ben Abbott <address@hidden> wrote:
>>>>> 
>>>>>> sudo port install octave @3.6.4 +atlas+docs+fltk+gcc48+x11
>>>>>> sudo port deactivate octave
>>>>>> sudo port install GraphicsMagick +q32
>>>>> 
>>>>> You can use the "octave-next" package which is in the development branch 
>>>>> of MacPorts
>>>>> or its preview version posted here [1] to get a more complete and 
>>>>> up-to-date set of 
>>>>> depenedencies installed.
>>>> 
>>>> I had no luck with octave-next:
>>>> $ sudo port -v build octave-next +atlas+gcc48+metis+doc 
>>>> configure.compiler=macports-gcc-4.8
>>>> Error: Port octave-next not found
>>> 
>>> You need to setup a local repository ...
>>> 
>>>     http://guide.macports.org/chunked/development.local-repositories.html
>>> 
>>> And then include the local portfile for octave-next.  The diff between the 
>>> released portfiile for Octave and octave-next is at the link below.
>>> 
>>>     https://trac.macports.org/ticket/41155#comment:23
>>> 
>>>> My intent in going through all this is to eventually actually be able to 
>>>> make a contribution; but this may be the hardest "hello, world" experience 
>>>> I've ever had!
>>>> 
>>>>> 
>>>>> As for GraphicsMagick in particular, note the suggestion in this comment 
>>>>> [2] about
>>>>> needing to compile it with gcc and not clang.
>>>>> 
>>>>> HTH,
>>>>> c.
>>>>> 
>>>>> [1] https://trac.macports.org/ticket/41155
>>>>> [2] https://trac.macports.org/ticket/41155#comment:3
>>>> 
>>>> I understand that I need to compile GraphicsMagick under gcc instead of 
>>>> clang; I'm only confused as to how to actually do that.  Following Ben's 
>>>> advice, I did:
>>>> 
>>>>>> sudo port install octave @3.6.4 +atlas+docs+fltk+gcc48+x11
>>>>>> sudo port deactivate octave
>>>>>> sudo port install GraphicsMagick +q32
>>> 
>>> That doesn't change the compiler. You'll need to follow the hints that are 
>>> part of comment#3
>>> 
>>>     https://trac.macports.org/ticket/41155#comment:3
>>> 
>>> Ben
>> 
>> I just updated my ports tree and am seeing the same error.  My 
>> GraphicsMagick has just upgraded to 1.3.19 (from 1.3.18).
>> 
>>      $ port installed GraphicsMagick
>>      The following ports are currently installed:
>>        GraphicsMagick @1.3.18_0+q32
>>        GraphicsMagick @1.3.19_0+q32 (active)
>> 
>> When I activate the version 1.3.18 ...
>> 
>>      sudo port activate GraphicsMagick @1.3.18_0+q32
>> 
>> Then I'm able to complete the build.  If you don't have the build for 
>> version 1.3.18 on your Mac, you can get the port file at the link below.
>> 
>>      
>> https://trac.macports.org/browser/trunk/dports/graphics/GraphicsMagick/Portfile?rev=115019
>> 
>> Ben
> 
> Sorry, I forgot to include a link for instructions on how to build and 
> install an old port.
> 
>       https://trac.macports.org/wiki/howto/InstallingOlderPort
> 
> Ben
> 
> 

Well, at least I get something different.

Here's the GraphicsMagick situation.  First, the output of the "port installed 
GraphicsMagick" command:
  The following ports are currently installed:
    GraphicsMagick @1.3.18_0+q32 (active)
    GraphicsMagick @1.3.19_0+q8
The 1.3.18 version was created by following the InstallingOlderPort 
instructions, but adding the following in the Portfiles:
  configure.compiler macports-gcc-4.8
I don't like touching Portfiles, since I'm so new to them, but I could not find 
any other way to compile with the correct compiler.  I did add the -d option to 
the install command so I could verify the correct compiler:
  sudo port -d install +q32
from within the GraphicsMagick folder that I created by following the 
InstallingOlderPort guide.

Then I did 'make clean', 'make -j4'.  (Actually I did it with and without -j4, 
same results.)

Here is the new build error I get:

libtool: compile:  /opt/local/bin/g++-mp-4.8 -DHAVE_CONFIG_H -I. -I../../libgui 
-I.. -I/opt/local/include -I/opt/local/include/QtGui -I/opt/local/include 
-I/opt/local/include/QtNetwork -I/opt/local/include -I/opt/local/include/QtCore 
-I../../libgui/qterminal/libqterminal -Isrc -I../../libgui/src 
-I../../libgui/src/m-editor -I../../libgui/src/qtinfo 
-I../../liboctave/cruft/misc -I../../liboctave/array -I../liboctave/numeric 
-I../../liboctave/numeric -I../liboctave/operators -I../../liboctave/operators 
-I../../liboctave/system -I../../liboctave/util -I../libinterp 
-I../../libinterp -I../libinterp/parse-tree -I../../libinterp/parse-tree 
-I../libinterp/corefcn -I../../libinterp/corefcn -I../../libinterp/octave-value 
-I../libgnu -I../../libgnu -D_THREAD_SAFE -I/opt/local/include -Wall -W 
-Wshadow -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align 
-Wcast-qual -pipe -O2 -m64 -D_THREAD_SAFE -pthread -MT 
src/m-editor/src_libgui_src_la-file-editor-tab.lo -MD -MP -MF 
src/m-editor/.deps/src_libgui_src_la-file-editor-tab.Tpo -c 
../../libgui/src/m-editor/file-editor-tab.cc  -fno-common -DPIC -o 
src/m-editor/.libs/src_libgui_src_la-file-editor-tab.o
In file included from ../libgnu/stdio.h:43:0,
                 from ../libgnu/wchar.h:71,
                 from /opt/local/include/gcc48/c++/cwchar:44,
                 from /opt/local/include/gcc48/c++/bits/postypes.h:40,
                 from /opt/local/include/gcc48/c++/bits/char_traits.h:40,
                 from /opt/local/include/gcc48/c++/string:40,
                 from /opt/local/include/QtCore/qstring.h:54,
                 from /opt/local/include/QtCore/qobject.h:48,
                 from /opt/local/include/Qsci/qscilexeroctave.h:33,
                 from ../../libgui/src/m-editor/file-editor-tab.cc:31:
/usr/include/stdio.h:255:7: error: previous declaration of 'char* gets(char*)' 
with 'C' linkage
 char *gets(char *);
       ^
In file included from /opt/local/include/gcc48/c++/cstdlib:72:0,
                 from ../bits/stl_algo.h:59,
                 from /opt/local/include/gcc48/c++/algorithm:62,
                 from /opt/local/include/QtCore/qglobal.h:68,
                 from /opt/local/include/QtCore/qnamespace.h:45,
                 from /opt/local/include/QtCore/qobjectdefs.h:45,
                 from /opt/local/include/QtCore/qobject.h:47,
                 from /opt/local/include/Qsci/qscilexeroctave.h:33,
                 from ../../libgui/src/m-editor/file-editor-tab.cc:31:
../libgnu/stdio.h:1034:1: error: conflicts with new declaration with 'C++' 
linkage
 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
 ^
make[3]: *** [src/m-editor/src_libgui_src_la-file-editor-tab.lo] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Line 31 of file-editor-tab.cc is a #include that brings in something from what 
appears to be Qscintilla, which for me is at Version 2.7.2.

At this point I decided I'd had enough for one day.

--
Daryl Lee
Amateurs train until they get it right; professionals train until they can't 
get it wrong. -- VOCES8



reply via email to

[Prev in Thread] Current Thread [Next in Thread]