여러 버젼의 라이브러리를 동시에 사용할수 있는지요?

나그네나그네의 이미지

예를 들어 어떤 컴퓨터에서 Qt 3.3을 사용하는 소스와 Qt 4.3을 사용하는 소스를, Qt와 관련된 so 파일의 설정 없이 바로 컴파일하는 것이 가능합니까?

ikpil의 이미지

이런 경우에는 .. 인터페이스만 중복 되지 않는다면, 가능한것으로 알고 있습니다. 해보진 못했습니다. : )
역시 한번 컴파일 하셔서 테스트 해보시는게 좋을것 같습니다.

bushi의 이미지

redhat, fedora 는 qt1 과 qt2 를, qt2 와 qt3를, qt3 와 qt4 를 항상 같이 제공해왔습니다.
다른 배포본 역시 마찬가지일거라 생각합니다.

[bushi@rose SPECS]$ rpm -ql qt-devel|grep pkgconfig
/usr/lib/pkgconfig/qt-mt.pc
[bushi@rose SPECS]$ 
[bushi@rose SPECS]$ pkg-config --cflags --libs qt-mt
-DQT_SHARED -DQT_TABLET_SUPPORT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -D_REENTRANT -I/usr/lib/qt-3.3/include  -L/usr/lib/qt-3.3/lib -lqt-mt -lmng -ljpeg -lpng -lz -lXi -lXrender -lXrandr -lXcursor -lXinerama -lXft -lfreetype -lfontconfig -lXext -lX11 -lm -lSM -lICE -ldl -lpthread  
[bushi@rose SPECS]$ 

[bushi@rose SPECS]$ rpm -ql qt4-devel|grep pkgconfig
/usr/lib/pkgconfig/Qt.pc
/usr/lib/pkgconfig/Qt3Support.pc
/usr/lib/pkgconfig/QtAssistantClient.pc
/usr/lib/pkgconfig/QtCLucene.pc
/usr/lib/pkgconfig/QtCore.pc
/usr/lib/pkgconfig/QtDBus.pc
/usr/lib/pkgconfig/QtDesigner.pc
/usr/lib/pkgconfig/QtDesignerComponents.pc
/usr/lib/pkgconfig/QtGui.pc
/usr/lib/pkgconfig/QtHelp.pc
/usr/lib/pkgconfig/QtNetwork.pc
/usr/lib/pkgconfig/QtOpenGL.pc
/usr/lib/pkgconfig/QtScript.pc
/usr/lib/pkgconfig/QtSql.pc
/usr/lib/pkgconfig/QtSvg.pc
/usr/lib/pkgconfig/QtTest.pc
/usr/lib/pkgconfig/QtUiTools.pc
/usr/lib/pkgconfig/QtWebKit.pc
/usr/lib/pkgconfig/QtXml.pc
/usr/lib/pkgconfig/QtXmlPatterns.pc
/usr/lib/qt4/mkspecs/features/link_pkgconfig.prf
[bushi@rose SPECS]$ 
[bushi@rose SPECS]$ cat /usr/lib/qt4/mkspecs/features/link_pkgconfig.prf 
# handle pkg-config files
for(PKGCONFIG_LIB, $$list($$unique(PKGCONFIG))) {
    QMAKE_CXXFLAGS += $$system(pkg-config --cflags $$PKGCONFIG_LIB)
    QMAKE_CFLAGS += $$system(pkg-config --cflags $$PKGCONFIG_LIB)
    LIBS += $$system(pkg-config --libs $$PKGCONFIG_LIB)
}
[bushi@rose SPECS]$
[bushi@rose SPECS]$ pkg-config --cflags --libs `rpm -ql qt4-devel|grep "\.pc"|cut -d '/' -f5-|cut -d '.' -f1`
-DQT_SHARED -I/usr/include/Qt3Support -I/usr/include/QtAssistantClient -I/usr/include/QtCLucene -I/usr/include/QtCore -I/usr/include/QtDBus -I/usr/include/QtDesigner -I/usr/include/QtDesignerComponents -I/usr/include/QtGui -I/usr/include/QtHelp -I/usr/include/QtNetwork -I/usr/include/QtOpenGL -I/usr/include/QtScript -I/usr/include/QtSql -I/usr/include/QtSvg -I/usr/include/QtTest -I/usr/include/QtUiTools -I/usr/include/QtWebKit -I/usr/include/QtXml -I/usr/include/QtXmlPatterns  -L/lib -lQt3Support -lQtAssistantClient -lQtDBus -lQtDesignerComponents -lQtDesigner -lQtHelp -lQtCLucene -lQtOpenGL -lGLU -lGL -lQtScript -lQtSql -lQtSvg -lQtTest -lQtUiTools -lQtWebKit -lQtGui -lQtXml -lQtXmlPatterns -lQtNetwork -lQtCore  
[bushi@rose SPECS]$
[bushi@rose SPECS]$

OTL