PDA

View Full Version : how to compile the qwt5.2.1 at solaris platform?



cspp
8th November 2010, 07:03
I want to compile the qwt5.2.1 in solaris,my Qt version is Qt4.5.3
The compile steps is:
qmake
make

but after compile the src.pro,it generate the libqwt.so.5.2.1
and then compile the designer_plugin.
it have a fatal error!
ld:Fatal error:Library -lqwt: can't find
if I copy the libqwt.so.5.2.1 to libqwt.so.
it will linked ok!
but run it error!
who knowns how to set and compile?
thanks all

Uwe
8th November 2010, 08:05
I want to compile the qwt5.2.1 in solaris ...

Guess you are not using gcc and if it is not a problem on your side it should be more a compiler issue, than one of the operating system.



but after compile the src.pro,it generate the libqwt.so.5.2.1
and then compile the designer_plugin.

When everything has worked like expected you should also find symbolic links to libqwt.so.6.0 and libqwt.so !

Creating these symbolic links is the job of the Makefile and the appropriate commands should have been generated by qmake. When running "qmake -spec solaris-cc" ( Qt 4.7 ) on my linux box I can see those commands in the Makefile. When you really don't have the symbolic links check your Makefile what it is doing instead.



if I copy the libqwt.so.5.2.1 to libqwt.so.
it will linked ok!
but run it error!
Of course there are a couple of steps missing, before you can use the plugin from the designer/creator - but "running on error" is not enough information to say something useful.

Uwe

cspp
8th November 2010, 10:08
I read the Makefile,
and the SYMLINK = ln -sf

and in my .cshrc:
setenv QMAKESPC solaris-cc-64

thanks

Added after 1 24 minutes:

I modified the Makefile in the src folder:


QMAKE_TARGET = qwt
DESTDIR = ../lib/
TARGET = libqwt.so.5.2.1
TARGETA = ../lib/libqwt.a
TARGET0 = libqwt.so
TARGET1 = libqwt.so.5
TARGET2 = libqwt.so.5.2


and the another segment


all: Makefile ../lib/$(TARGET)

../lib/$(TARGET): $(OBJECTS) $(SUBLIBS) $(OBJCOMP)
@$(CHK_DIR_EXISTS) ../lib/ || $(MKDIR) ../lib/
-$(DEL_FILE) -o $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2)
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) $(OBJCOMP)
-$(SYMLINK) $(TARGET) $(TARGET0)
-$(SYMLINK) $(TARGET) $(TARGET1)
-$(SYMLINK) $(TARGET) $(TARGET2)
-$(DEL_FILE) ../lib/$(TARGET)
-$(DEL_FILE) ../lib/$(TARGET0)
-$(DEL_FILE) ../lib/$(TARGET1)
-$(DEL_FILE) ../lib/$(TARGET2)

-$(MOVE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2) ../lib/


then it will done.

so I want to know,
how to generate the right makefile if I qmake src.pro?

Uwe
8th November 2010, 19:22
I've tried qmake -spec solaris-cc-64 on my box and the lines you have marked with [U] ( were these the lines you added manually ? ) are in my generated Makefile.

The rules for building a library target with qmake are implemented in qmake code itsself and in the platform specific files in the mkspecs directory of your Qt installation. So the missing link should be a problem of your Qt version or installation. Maybe someone manually changed the files in your mkspec sub-directory.

Uwe

cspp
9th November 2010, 00:56
thanks,
I added the market [U] manually:)

The Qt version is Qt4.5.3,and the mkspces is solaris-cc-64.
I added some defines in the qmake.conf,
so whick changes in the file will generate the error Makefile?

Uwe
9th November 2010, 07:23
I added some defines in the qmake.conf

Remove all lines you have added and try if they are really responsible. If yes re-insert them one by one until the generated Makefile is broken again.

Uwe