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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 >> <[EMAIL PROTECTED]> 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 >>>> >>>> <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> >>>> >> 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 <[EMAIL PROTECTED]> >>> 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@llistes.projectes.lafarga.org >>>> >> >>> https://llistes.projectes.lafarga.org/cgi-bin/mailman/listinfo/clam- >>>> >> >>>dev el >>>> >> >> >>>> >> >> _______________________________________________ >>>> >> >> Clam-devel mailing list >>>> >> >> Clam-devel@llistes.projectes.lafarga.org >>>> >> >> https://llistes.projectes.lafarga.org/cgi-bin/mailman/listinfo/clam-d >>>> >> >>eve l >>>> >> > >>>> >> > _______________________________________________ >>>> >> > Clam-devel mailing list >>>> >> > Clam-devel@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 >>> >> > _______________________________________________ Clam-devel mailing list Clam-devel@llistes.projectes.lafarga.org https://llistes.projectes.lafarga.org/cgi-bin/mailman/listinfo/clam-devel