qtboost編譯
Ⅰ 如何快速安裝 boost 預編譯版本
boost有些庫是不用安裝的,僅需包含頭文件庫就行了。
但是有些很爽的庫(thread,regex)需要根據不同的系統做不同的調整,所以必須編譯。
編譯的流程很簡單,如果是windows操作系統,首先找到那個booststrap.bat的東西,然後在控制台下運行它,它會生成bjam.exe,然後就可以通過bjam來編譯boost庫了,在命令行下輸入bjam --help看選項。
如果嫌麻煩,可以一次將boost庫需要編譯的全部編譯了,bjam --build-type=complete,生成庫全在stage目錄下。
Ⅱ qtcreator里cgal的boost的.hpp找不到 使用mingw編譯的cmake過了,就差最後qtcreator裡面pro的配置
寫成這樣的方式
INCLUDEPATH += C:/Boost/include/boost-1_55/沒李boost \
'世腔C:/program Files/CGAL-4.4/include' \
LIBS += -LC:/枯返遲Boost/lib \ (文件夾用-L)
單個文件用-l
再看看pro編寫的說明文檔。
Ⅲ QT引用boots庫pro怎麼處理
Qt Creator+MinGW+boost特殊函數的使談嫌用示例:
先編譯和安裝boost:
[plain]view plain
bootstrap.batgcc
.2--toolset=gcc--prefix=E:oostinstall
- 新建qt控制台項目,然後在*.pro文件中添加一行:
INCLUDEPATH+=E:/boost/include/boost-1_53
[plain]view plain
Ⅳ 請教,如何在arch下建立qt編譯環境的問題
一、安裝G++環境
sudo apt-get install build-essential
另外的一些相關環境。如果不安裝,一些qt的組件是無法正常編譯的,例如openGL
sudo apt-get install libx11-dev libxau-dev libxaw7-dev libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev
sudo apt-get install libxext-dev libxfixes-dev libxfont-dev libxft-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev
sudo apt-get install libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev
sudo apt-get install libglib2.0-dev
sudo apt-get install libssl-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libcups2-dev
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
sudo apt-get install libgstreamer0.10-dev
二、解壓代碼
tar zxvf qt-everywhere-opensource-src-4.8.4.tar.gz
解壓完進入解壓後的源代碼文件夾
三、執行。/configure生成makefile
。/configure -prefix /usr/local/Qt-4.8.2
(上面指定的這個目錄/usr/local/Qt-4.8.2 ,就是make install 後的安裝目錄)
下面出現對話框選擇open source edition.這是自由版。輸入yes接受協議。
(1)如果你的機器各種庫文件完整,經過一小會,配置完成,會出現以下信息
Qt is now configured for building ,just run 『make』
Once everything is built , you must run 『make install』
Qt will be installed into /usr/local/Qt-4.8.2
To reconfigure ,run 『make confclean』 and 『configure』
說明Makefile文件生成成功
(2)如果出現以下信息
Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/gcgily/qt-everywhere-opensource-src-4.8.4/mkspecs/linux-g++
還是老辦法,以不變應萬變。進config.test/x11/xlib 執行make命令,看出錯信息
g++ -Wl,-O1 -o xlib xlib.o -L/usr/X11R6/lib -lXext -lX11 -lm
/usr/bin/ld: cannot find -lXext
看到了吧,g++在/usr/X11R6/lib下,找不到libXext.so呢。
其原因就在於需要安裝libX11的開發包,在Ubuntu/debian里包名都是libX11-dev
根據以往的經驗,在。/configure前主動裝好下面3個包,基本上就萬事大吉了
sudo apt-get install libX11-dev libXext-dev libXtst-dev
安裝所需到包後再重新。/configure即可生成Makefile文件
如果出現:Project ERROR: Package gstreamer-app-0.10 not found,則執行以下命令
apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev如果出現 : g++: error: unrecognized command line option 『-fuse-ld=gold』
這是Qt的一個bug:https://bugs.webkit.org/show_bug.cgi?id=89312
在裝有gold linker的系統里,編譯腳本會加入-fuse-ld=gold選項,但這個選項gcc是不支持的。解決辦法是移除該選項,找到文件src/3rdparty/webkit/Source/common.pri,屏蔽QMAKE_LFLAGS+=-fuse-ld=gold。
#
QMAKE_LFLAGS+=-fuse-ld=gold
四、編譯QT
執行make命令,需要2個小時。
五、安裝QT
運行sudo make install命令。需要幾分鍾時間,默認安裝到/usr/local/Qt-4.8.2. 運行/usr/local/Qt-4.5.3/bin/designer ,若能啟動QT,說明QT已經安裝好了。
六、設置環境變數
更改用戶環境變數
gedit /home/username/.bashrc
添加:
export QTDIR=/usr/local/Qt-4.8.2
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
更改包括root用戶的環境變數
sudo gedit /etc/profile (此處profile文件要更改一下許可權才能寫入)
添加:
export QTDIR=/usr/local/Qt-4.8.2
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
七、測試環境變數
重啟測試環境變數:
qmake -v
顯示版本信息:
QMake version 2.01a
Using Qt version 4.8.2 in /usr/local/Qt-4.8.2/lib
which qmake
顯示安裝位置信息:
/usr/local/Trolltech/Qt-4.8.2/bin/qmake
環境變數設置成功。
代碼:
如果需要在Qt中引用其他的包以及庫文件,則使用:
INCLUDEPATH += /usr/local/include/
INCLUDEPATH += /usr/local/include/Eigen
INCLUDEPATH += /usr/local/include/boost
INCLUDEPATH += /usr/local/include/CGAL
LIBS += -L/usr/local/lib/ -lgmp
LIBS += -L/usr/local/lib/ -lmpfr
其中LIBS參數中 -l後只能接特定某一個庫文件,且如果該文件為 「libxxx.so「,則-l後只接「xxx」。
上面就是搭建Qt開發環境的方法介紹了,作為一個良好的跨平台開發工具,Qt能夠很好的運行於更大主流系統,擁有豐富的API等。
Ⅳ win7 安裝qt vs2010配置boost,CGAL等
一、安裝cmake
1、這一步比較簡單,下載安裝最新版本cmake-2.8,開始如下安裝
2、注意這里選擇第二個選項,為所有的用戶添加系統變數
3、選擇安裝到目錄 F:\CMake 2.8,個人建議最好安裝在C盤目錄下。
4、安裝完畢後確認一下系統變數中有沒有紅色框中的目錄,若沒有需要手動添加進去。
5、cmake安裝完畢!
二、安裝Boost庫
1、下載最新版本,當前為boost_1_55_0
2、按 Win+R組合鍵輸入cmd進入命令窗口:
切換當前目錄為boost的安裝目錄(G:\boost_1_55_0),輸入bootstrap.bat
3、執行完上述命令後會在安裝目錄下生成如下exe文件
4、繼續在DOS窗口中輸入bjam.exe,程序會根據你當前安裝的編譯環境(vs2010,vs2012,vs2013)等自動選擇與之相適應的庫文件和包含文件等。
此過程大概需要20分鍾左右。根據下面第二個圖片可以算出我的編譯環境為MSVC-12.0即VS2013.
5、20分鍾左右後可以看到如下界面,說明Boost庫配置完成
三、安裝CGAL
1、下載CGAL,這里我下載的是CGAL-4.4這個版本(當前最新的)
2、安裝位數選擇32位
如果選擇64位進行安裝,則會在以後配置完畢後出現類似「無法識別的外部符號。。。」等問題,很難進行正確配置。所以這里最好全部選擇32位進行安裝。
3、安裝目錄我選擇C:\Program Files\CGAL-4.4
安裝在其他目錄時可能會出現用Cmake編譯時出現好幾外錯誤。可以嘗試通過安裝在C盤進行解決。
4、選擇如下幾項,單擊下一步
5、安裝完成後可能會出現如下提示,則需要手動添加F:\CGAL-4.4\auxiliary\gmp\lib到Path變數中
6、此時CGAL安裝完成
四、用Cmake配置CGAL庫
1、打開Cmake軟體選擇如下目錄,註:兩個目錄是相同的
2、單擊「config"-選擇如下編譯器(默認是32位,與前面安裝軟體一定要保持一致)
3、單擊確定後,出現如下界面說明配置成功
4、找到如下圖的這一項,選中,再次單擊"config"進行配置
5、單擊Generate,此時界面應如下。
6、此時在CGAL安裝目錄下出現如下文件:CGAL.sln
7、打開此文件,此時編譯器會自動組建一個解決方案。如下圖
8、選擇32位debug模式,按F7進行編譯,編譯完成後如下圖所示,表明CGAL至此完全配置成功。
五、舉例測試CGAL
新建一個控制台應用程序,並添加如下代碼
#include <iostream>
#include <boost/format.hpp>
#include <QtGui>
#include <CGAL/Qt/GraphicsViewNavigation.h>
#include <QLineF>
#include <QRectF>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QGraphicsScene scene;
scene.setSceneRect(0,0, 100, 100);
scene.addRect(QRectF(0,0, 100, 100), QPen(QColor(255,0,0)));
scene.addLine(QLineF(0,0, 100, 100));
scene.addLine(QLineF(0,100, 100, 0));
QGraphicsView* view = new QGraphicsView(&scene);
CGAL::Qt::GraphicsViewNavigation navigation;
view->installEventFilter(&navigation);
view->viewport()->installEventFilter(&navigation);
view->setRenderHint(QPainter::Antialiasing);
view->show();
return app.exec();
}
添加包含庫目錄,操作如下圖,注意紅色框中的添加內容
添加附加庫目錄,操作如下圖,注意紅色框中的添加內容
直接編譯運行此時會出現如下錯誤,別急,我們離成功只差一步了
>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall QColor::QColor(int,int,int,int)" (__imp_??0QColor@@QAE@HHHH@Z),該符號在函數 _main 中被引用
1>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall QBrush::QBrush(void)" (__imp_??0QBrush@@QAE@XZ),該符號在函數 _main 中被引用
1>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall QBrush::~QBrush(void)" (__imp_??1QBrush@@QAE@XZ),該符號在函數 _main 中被引用
1>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: void __thiscall QWidget::show(void)" (__imp_?show@QWidget@@QAEXXZ),該符號在函數 _main 中被引用
1>test.obj : error LNK2001: 無法解析的外部符號 "protected: virtual bool __thiscall QWidget::winEvent(struct tagMSG *,long *)" (?winEvent@QWidget@@MAE_NPAUtagMSG@@PAJ@Z)
1>test.obj : error LNK2001: 無法解析的外部符號 "protected: virtual void __thiscall QWidget::windowActivationChange(bool)" (?windowActivationChange@QWidget@@MAEX_N@Z)
1>G:\Cpp\Midaxis\CGAL512\Debug\CGAL512.exe : fatal error LNK1120: 81 個無法解析的外部命令
添加附加依賴項。
選擇「鏈接器」---「輸入」,在其中輸入如下添加LIB文件
phonon4.libQAxContainer.libQtCLucene4.libQtCore4.libQtDeclarative4.libQtDesigner4.libQtGui4.libqtmain.libQtOpenGL4.lib
再次編譯運行,即可大功告成了!
Ⅵ boost 庫qt5.7.1安裝後怎麼在vs2013上用boost 庫
boost 庫qt5.7.1安裝後怎麼在vs2013上用boost 庫
下載Boost庫,這里我選擇下載boost_1_55_0.zip
怎樣在VS2013中安裝配置boost_1_55_0庫
解壓boost文件到本地目錄(如G:\boost_1_55_0),可以發現解壓後的文件中有一個bootstrap.bat文件。
然後以管理員身份打開cmd窗口,
怎樣在VS2013中安裝配置boost_1_55_0庫
上述命令執行完畢後可以發現G:\boost_1_55_0下新生成了一個bjam.exe文件
怎樣在VS2013中安裝配置boost_1_55_0庫
在命令窗口中輸入語句:bjam.exe。
此過程將默認根據系統已經安裝好的編譯工具(VS2008,2010,2012,2013)等編譯相應的Lib文件、頭文件等。(此步驟大概需要10分鍾)
怎樣在VS2013中安裝配置boost_1_55_0庫
從下圖可以看到msvc 12.0,這是因為我系統中已經安裝過了VS2013
msvc : 8.0是VS2005
msvc : 10.0是VS2010
msvc : 12.0是VS2012、VS2013
第5步執行成功後會有如下信息提示
怎樣在VS2013中安裝配置boost_1_55_0庫
至此我們已經完成了boost庫的安裝,下面需要乎缺配置一下VS2013了。新建一個VS2013控制台應用程序(工程名為boostest),添加如下代碼
#include "stdafx.h"
#include <陵瞎boost/lexical_cast.hpp>
#include <iostream>
using namespace std;
int main()
{
using boost::lexical_cast;
int a = lexical_cast<int>("123");
double b = lexical_cast<double>("123.0123456789");
string s0 = lexical_cast<string>(a);
string s1 = lexical_cast<string>(b);
cout << "number: " << a << " " << b << endl;
cout << "string: " << s0 << " " << s1 << endl;
int c = 0;
try{
c = lexical_cast<int>("abcd");
}
catch (boost::bad_lexical_cast& e){
cout << e.what() << endl;
}
return 0;
}
添加boostest工程的包含目錄和庫目錄
包含目錄添加 G:\boost_1_55_0
庫目錄添加 G:\boost_1_55_0\stage\li
進入代尺頃空碼窗口編譯並成功運行說明BOOST庫確實已經配置成功,可以放心使用。
Ⅶ 請教:qt下如何調用linux下編譯的驅動程序
在Windows上搭建一個qt的開發環境,將你在linux下面寫的代碼拿來從新編譯,一般來說不需要修改就可以通過,注意的是:linux和windows上的qt版本要一致
Ⅷ 如何編譯64位 boost類庫
64位windows平台,編譯環境是VS2005,進入Visual Studio 2005 x64 Win64 Command Prompt(單純的cmd也不一定不行,我沒試)。把bjam.exe放在boost根目錄下,進入根目錄,執行:
bjam --toolset=msvc address-model=64 --with-thread stage
bjam --toolset=msvc address-model=64 --with-date_time stage
關鍵選項:「address-model=64 」
64位Linux平台,使用gcc編譯。進入boost根目錄,執行:
./bjam --toolset=gcc --with-thread stage
./bjam --toolset=gcc --with-date_time stage
linux平台下倒是簡單,不過網上有篇文章介紹用如下命令編譯,不知道是多此一舉,還是適用於某些情況(非64位linux主機?)。
./bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-thread stage
./bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-date_time stage
唉。命令都很簡單,可浪費了我不少時間。usage根本沒寫,去看boost build的嘛,頁數n多不說,看完之後能否找到答案還是未知數。網上相關資料很少而且大多南轅北轍,只好一直搜索+嘗試。其實我只是想要個64位版本的庫而已,這應該不是啥稀罕的需求吧?
在windows平台下,編譯出來的是否是64位類庫,只有link 64位程序的時候才能發現。如果不是,link程序無法找到類庫中定義的函數或者類。linux不知道,因為我整出來直接就是64位了,我也懶得再找一台32位linux主機折騰了。
在1.37之後的boost,如果想要使用boost::thread庫,必須有boost::date_time庫。當然這件事情又一如既往很酷地沒有出現在容易看到的地方。而是讓你鏈接錯誤後再去玩抓蟲游戲。
轉載,僅供參考。