[Clam-devel] Missing qformlayout.h when compiling NE

Han, Yushen yushen.han at gmail.com
Sun Aug 10 14:25:00 PDT 2008


Hi, David

I know that macport is the way that you suggested me to go.
But for the sake of argument, below I will talk about the
hand-compiled Qt4.4.1 because I believe that we should reach the goal
either way.

I am trying to command the pkg-config and Scon tools and I feel I am
one step away from my goal of compiling NE with the right Qt4.
(1) I was able to modify the pkg-config metadata files (in my
/opt/local/lib/pkgconfig) to make pkg-config work probably.
(2) Also, I am sure the SConstruct script of my NE is fine. ( I print
out the path variables and they all looked fine).
(3) However, I wonder what happened between the scons read the
SConscript  and the actual building.
Is "/usr/local/share/clam/sconstools/qt4.py" the right file to look into?

Now my problem is:

In NE's MainWindow.hxx, we have
#include <QtGui/QApplication>
I am sure that "/usr/local/Trolltech/Qt-4.4.1/include/QtGui/QApplication" exists
(it is a one-line text file - "#include "qapplication.h"")

But instead of searching
"/usr/local/Trolltech/Qt-4.4.1/include/QtGui", it ran into
"/usr/local/Trolltech/Qt-4.4.1/include/qt4/QtGui".

"/usr/local/Trolltech/Qt-4.4.1/include/qt4" does not exist at all !!!
I've no idea how the program comes up with such a dir -
"/usr/local/Trolltech/Qt-4.4.1/include/qt4".
I examed my pkg-config and SConstruct but they did not give anything
like "/usr/local/Trolltech/Qt-4.4.1/include/qt4".

Here is my error message.
scons: done reading SConscript files.
scons: Building targets ...
scons: *** [src/main.o] TypeError `File
/usr/local/Trolltech/Qt-4.4.1/include/qt4/QtGui found where directory
expected.' trying to evaluate `${_concat(INCPREFIX, CPPPATH,
INCSUFFIX, __env__, RDirs, TARGET, SOURCE)}'
scons: building terminated because of errors.

Do you have any hints?

Best regards,
Han, Yushen

On Sun, Aug 10, 2008 at 1:00 PM, Han, Yushen <yushen.han at gmail.com> wrote:
> Hi,
>
> I figured out how pkg-config work.
> I think one of my problems is that I have multiple .pc files (metadata
> files for pkg-config).
> Let me try to modify the .pc file to specify the QTDIR correctly.
>
> But I did not find any link from SConstruct to pkg-config...
>
> Best regards,
> Han, Yushen
>
> On Sun, Aug 10, 2008 at 12:43 PM, Han, Yushen <yushen.han at gmail.com> wrote:
>> Hi, David
>>
>> 1. Here is the result. It seems that they are using the frameworks.
>>
>> pkg-config --libs QtCore
>> -F/opt/local/Library/Frameworks -framework QtCore -framework
>> ApplicationServices -L/opt/local/Library/Frameworks -L/opt/local/lib
>> -lz -lm
>>
>> I have all qt4.4  .framework and .la files in /opt/local/Library/Frameworks.
>>
>> 2. In my opt/local/lib
>> I found out a pkgconfig dir and a qt4-mac-plugins dir where some qt files exist.
>> Are they the files that I should remove? How can I clean my opt/local
>> to remove all the previous install of qt?
>> (I already tried port clean and port uninstall before. )
>>
>> Thanks for making the mac patch for me!
>>
>> Best regards,
>> Han, Yushen
>>
>> On Sun, Aug 10, 2008 at 12:30 PM, David García Garzón
>> <dgarcia at iua.upf.edu> wrote:
>>> I guess you still have some files from a previous install in /opt/local. Check
>>> that and tell us before proceeding.
>>>
>>> If pkg-config detects that version in /opt and that version is installed. The
>>> one detected by pkg-config is the one we want. We should remove the hand
>>> compiled one.
>>>
>>> Try also:
>>> pkg-config --libs QtCore
>>>
>>> they will tell us whether you that version at /opt/local use frameworks or
>>> libs.
>>>
>>> I will provide the patch to use pkg-config in mac shortly.
>>>
>>>
>>> On Diumenge 10 Agost 2008, Han, Yushen wrote:
>>>> David,
>>>>
>>>> 1. Yes, I found pkg-config files from the qt4.4.1 source code
>>>> (compilation by hand).
>>>> I think they exist in port but I am not 100% sure.
>>>> I also found qt4.py i. Is it possible to tell scons to use pkg-config?
>>>> Can I have the patch that you mentioned?
>>>>
>>>> 2. My hand compilation was finished.
>>>> Everything was nicely installed at /usr/local/Trolltech/Qt-4.4.1/
>>>> (instead of /opt/local by the port)
>>>> However, I have problem in telling NE where the QTDIR is.
>>>> I did specify QTDIR=/usr/local/Trolltech/Qt-4.4.1/ in bash.
>>>> But the scons in NE just IGNORE what I set in QTDIR.
>>>>
>>>> scons: Reading SConscript files ...
>>>> Loading nsis tool...
>>>> Loading Bundle tool
>>>> Lodading dmg tool...
>>>> Version:  1.3.0
>>>> Package version:  1.3.0~svn11858
>>>> scons: done reading SConscript files.
>>>> scons: Building targets ...
>>>> == Compiling src/main.cxx
>>>> src/main.cxx:22:30: error: QtGui/QApplication: No such file or directory
>>>> src/main.cxx:23:30: error: QtCore/QTranslator: No such file or directory
>>>> src/main.cxx:24:26: error: QtCore/QLocale: No such file or directory
>>>> ......
>>>>
>>>> As a result, scons of NE did not find any Qt file and gave hundreds of
>>>> error messages.
>>>> How should I tell scons of NE where QT is installed?
>>>>
>>>> 3. Interestingly. I found out some nonexistent path are given by some
>>>> pkg-config (see below)
>>>> 156-56-219-141:NetworkEditor yushen$ pkg-config --cflags QtCore
>>>> -DQT_SHARED -I/opt/local/include/qt4-mac
>>>> -I/opt/local/include/qt4-mac/QtCore 156-56-219-141:NetworkEditor yushen$
>>>> pkg-config --cflags QtGui
>>>> -DQT_SHARED -I/opt/local/include/qt4-mac -I/opt/local/include/qt4-mac/QtGui
>>>>
>>>> I am not familiar with pkg-config.
>>>> Can you please give me more information about how to configure it?
>>>> Thanks in advance.
>>>>
>>>> Best regards,
>>>> Han, Yushen
>>>>
>>>> On Sun, Aug 10, 2008 at 7:59 AM, David García Garzón
>>>>
>>>> <dgarcia at iua.upf.edu> wrote:
>>>> > Please, check whether the macports or the by hand compilation provide
>>>> > pkg-config files. If they provide it i could send you a patch that
>>>> > hopefully would solve the problem. I mean, currently mac qt4.py scons
>>>> > tool (that we developed) does not use pkg-config (as windows and linux
>>>> > does) because old qt mac version didn't provide it. But the situation
>>>> > could have changed, as it changed in windows, and that would help a lot.
>>>> > If the pkg-config file provides proper compile options then we can rely
>>>> > on them for whatever setup is installed, based on frameworks or not. That
>>>> > would be the ideal solution, relying on pkg-config files once and
>>>> > forever.
>>>> >
>>>> > So, please, check for Qt*.pc files.
>>>> >
>>>> > David.
>>>> >
>>>> > On Diumenge 10 Agost 2008, Han, Yushen wrote:
>>>> >> Hi, Natanael and David
>>>> >>
>>>> >> Thanks for your reply, Natanael
>>>> >> My last installation did not solve the problem but I am on the right
>>>> >> track, I think, now.
>>>> >>
>>>> >> I just figured out that "port install qt4-mac" would not make all the
>>>> >> .dylib (e.g. libQtCore.4xx.dylib) files but a
>>>> >> framework ( the framework is a Mac OS X thing) for us.
>>>> >> As a result, the option "-lQtCore" in linking would fail.
>>>> >>
>>>> >> http://blogs.seapine.com/yan/debugging-qt-with-xcode-30.html
>>>> >> gave some good discussion about it.
>>>> >> "The quickest way is to use the install_name_tool utility and update
>>>> >> the bundle executable's dependency on libQtCore to your location of
>>>> >> libQtCore (if your Qt is built as a set of libs) or to the location of
>>>> >> the QtCore framework executable (if your Qt is built as a set of
>>>> >> frameworks)."
>>>> >>
>>>> >> The discussion suggested that we can choose to compile Qt 4.4 as a set
>>>> >> of dynamic libraries.
>>>> >> The only way that I found out to do so is to download the open-source
>>>> >> code (Qt4.4.1) from Trolltech and do  ./configure -no-framework before
>>>> >> compiling. At the moment my laptop is happily building it for the 3rd
>>>> >> time in the past 2 days,
>>>> >>
>>>> >> By default, at least in my laptop( Intel-core Mac OS X 10.5.4 ),
>>>> >> NEITHER port (Qt4.4) NOR the package(Qt4.4.1) from Trolltch
>>>> >> would build Qt4 as a set of dynamic libraries as we desire in NE.
>>>> >>
>>>> >> I was recalling David's suggestion
>>>> >> "we never recommend compiling Qt by hand. This might give problems when
>>>> >> updating to another version. I think that the recommended setup is using
>>>> >> macports".  It used to work for me 3 months ago.
>>>> >> However, last week I tried so for Qt4.4 twice but it failed.
>>>> >> I doubt if they change something from Qt4.3 to Qt4.4 (no dynamic
>>>> >> libraries are built anymore)
>>>> >> which caused my problem in Mac OS X.
>>>> >>
>>>> >> I will let you know tomorrow morning if my new solution works.
>>>> >> (Does any Mac users experience this problem of missing dynamic
>>>> >> libraries in Qt4.4 (Qt4.4.1)?)
>>>> >>
>>>> >>
>>>> >> Best regards,
>>>> >> Han, Yushen
>>>> >>
>>>> >> On Sat, Aug 9, 2008 at 8:09 PM, Natanael Olaiz <nolaiz at gmail.com> wrote:
>>>> >> > El 08/09/2008 05:53 PM, Han, Yushen escribió:
>>>> >> >> Hi, Natanael
>>>> >> >>
>>>> >> >> Thanks for your reply. By "Is using another Qt version.", are you
>>>> >> >> saying that my problem of missing "QFormLayout" class is because NE
>>>> >> >> is using a different Qt version?
>>>> >> >
>>>> >> > Your log shows like is using the new headers, but not the libraries.
>>>> >> > Doesn't say anything about others qt4 missing symbols, so I though is
>>>> >> > still using other qt4 (not 4.4) libraries.
>>>> >> >
>>>> >> >> I had qt3 (installed by macport) qt4.4 (installed by macport) and
>>>> >> >> qt4.4.1 (installed by the package file) in my laptop.
>>>> >> >> I was using "port clean" and "port uninstall" to remove qt3 and
>>>> >> >> qt4.4. Still there were some libQt*.dylib files in my /usr/local/lib
>>>> >> >> and I manually removed them.
>>>> >> >
>>>> >> > I don't think qt3 is a problem. Just a non properly installed qt4.4
>>>> >> > with (I think) other previous qt4 (non 4.4).
>>>> >> >
>>>> >> >> I was trying to remove qt4.4.1 by looking into the receipt file
>>>> >> >> inside of the .pkg files (e.g. Qt_docs.pkg) under my
>>>> >> >> /Library/Receipt/. But I was not sure about if I really removed it.
>>>> >> >> Do you know anything about removing a package from Mac OS X? I was
>>>> >> >> using Google for a solution but did not have much success.
>>>> >> >>
>>>> >> >> When I am writing this message, my laptop is largely occupied by
>>>> >> >> compiling qt4.4-mac (using macport).
>>>> >> >> (The instruction given by Darwin port did not work for qt4.4
>>>> >> >> They say Darwinport has no affiliation with macport and should be
>>>> >> >> trusted.)
>>>> >> >>
>>>> >> >> I really hope this time it would work...
>>>> >> >> But if you know any solution to "remove" all versions of qt, please
>>>> >> >> let me know. Thanks!
>>>> >> >
>>>> >> > Sorry, but I can't help with that because I don't use a MAC :(
>>>> >> >
>>>> >> >
>>>> >> > Good luck!,
>>>> >> > Natanael.
>>>> >> >
>>>> >> >> Best regards,
>>>> >> >> Han, Yushen
>>>> >> >>
>>>> >> >> On Sat, Aug 9, 2008 at 2:39 AM, Natanael Olaiz <nolaiz at gmail.com>
>>> wrote:
>>>> >> >>> Is using another Qt version. Try cleaning and recompiling your CLAM
>>>> >> >>> library
>>>> >> >>> -NE and uninstalling other qt4 versions (if qt3 would be the
>>>> >> >>> problem, it would be so much errors than only qformlayout). Do a
>>>> >> >>> 'make uninstall' from
>>>> >> >>> your compiled qt4 dir!!
>>>> >> >>>
>>>> >> >>> Regards,
>>>> >> >>> Natanael.
>>>> >> >>>
>>>> >> >>> El 08/09/2008 02:34 AM, Han, Yushen escribió:
>>>> >> >>>> Hi,
>>>> >> >>>>
>>>> >> >>>> Thanks for the link!
>>>> >> >>>>
>>>> >> >>>> Yes, actually my macports failed and I downloaded a qt4.4.1 .dmg
>>>> >> >>>> from trolltech.
>>>> >> >>>>
>>>> >> >>>> It compiled this time but gave a different error in linking below.
>>>> >> >>>> Do you have any idea?
>>>> >> >>>>
>>>> >> >>>> I notice that I have both qt3 and qt4 in my laptop. But I don't
>>>> >> >>>> think this should be a problem...
>>>> >> >>>>
>>>> >> >>>> Best regards,
>>>> >> >>>> Han, Yushen
>>>> >> >>>>
>>>> >> >>>> 156-56-219-141:NetworkEditor yushen$ sudo scons install
>>>> >> >>>> clam_prefix=/usr/local
>>>> >> >>>> scons: Reading SConscript files ...
>>>> >> >>>>
>>>> >> >>>> scons: warning: QTDIR variable is not defined, using moc executable
>>>> >> >>>> as a hint (QTDIR=/opt/local)
>>>> >> >>>> File "/usr/local/share/clam/sconstools/qt4.py", line 208, in
>>>> >> >>>> _detect Loading nsis tool...
>>>> >> >>>> Loading Bundle tool
>>>> >> >>>> Lodading dmg tool...
>>>> >> >>>> Version:  1.3.0
>>>> >> >>>> Package version:  1.3.0~svn11858
>>>> >> >>>> scons: done reading SConscript files.
>>>> >> >>>> scons: Building targets ...
>>>> >> >>>> == Linking NetworkEditor
>>>> >> >>>> Undefined symbols:
>>>> >> >>>>  "QFormLayout::QFormLayout(QWidget*)", referenced from:
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>  "QFormLayout::setWidget(int, QFormLayout::ItemRole, QWidget*)",
>>>> >> >>>> referenced from:
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in .o
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>>  "QFormLayout::setRowWrapPolicy(QFormLayout::RowWrapPolicy)",
>>>> >> >>>> referenced from:
>>>> >> >>>>     Ui_LadspaMetadataEditor::setupUi(QDialog*)      in MainWindow.o
>>>> >> >>>> ld: symbol(s) not found
>>>> >> >>>> collect2: ld returned 1 exit status
>>>> >> >>>> scons: *** [NetworkEditor] Error 1
>>>> >> >>>> scons: building terminated because of errors.
>>>> >> >>>
>>>> >> >>> _______________________________________________
>>>> >> >>> Clam-devel mailing list
>>>> >> >>> Clam-devel at llistes.projectes.lafarga.org
>>>> >> >>> https://llistes.projectes.lafarga.org/cgi-bin/mailman/listinfo/clam-
>>>> >> >>>dev el
>>>> >> >>
>>>> >> >> _______________________________________________
>>>> >> >> Clam-devel mailing list
>>>> >> >> Clam-devel at llistes.projectes.lafarga.org
>>>> >> >> https://llistes.projectes.lafarga.org/cgi-bin/mailman/listinfo/clam-d
>>>> >> >>eve l
>>>> >> >
>>>> >> > _______________________________________________
>>>> >> > Clam-devel mailing list
>>>> >> > Clam-devel at llistes.projectes.lafarga.org
>>>> >> > https://llistes.projectes.lafarga.org/cgi-bin/mailman/listinfo/clam-de
>>>> >> >vel
>>>> >
>>>> > --
>>>> > David García Garzón
>>>> > (Work) dgarcia at iua dot upf anotherdot es
>>>> > http://www.iua.upf.edu/~dgarcia
>>>
>>>
>>>
>>> --
>>> David García Garzón
>>> (Work) dgarcia at iua dot upf anotherdot es
>>> http://www.iua.upf.edu/~dgarcia
>>>
>>
>




More information about the clam-devel mailing list