用vs2008編寫和除錯linux程式 ----VisualGDB 使用教程
1 準備一臺Linux機器用來編譯程式,我用的是虛擬機器安裝的CentOS網路設定成橋接模式
(1)安裝並開啟SSH
(2)安裝 gcc g++ gdb
(3)關閉防火牆或者開啟允許SSH對外訪問的網路埠
2下載 VisualGDB 安裝沒什麼好說的一路next就好了,然後開啟vs2008會需要配置VisualGDB也是一路next就好了
二用vs2008建立一個的linux程式
1 新建工程,然後我們選擇【VisualGDB】的【LinuxProject Wizard】
2 選擇【Create a newproject】的【Application】
3 建立SSH 連結 選擇【Build the projectunder Linux over network】
4選擇【Remotecomputer】的 【create a new SSH】輸入Linux電腦的ip地址以及使用者名稱密碼
5 接下去 next就好了 一個Linux工程就建好了
三建立和使用的靜態庫
1在剛剛的解決方案中新建工程
2 在新建專案時我們選擇【Static library】
3 一路next,我就建好了一個靜態庫檔案
4 引用靜態庫,修改上一個建立的工程
#include <iostream> #include "../Linux_static/Linux_static.h" using namespace std; int main(int argc, char *argv[]) { char sz[] = "Hello, World!\n"; //Hover mouse over "sz" while debugging to see its contents cout << "static library method :" << Linux_staticTest() << endl; cout << sz << endl; //<================= Put a breakpoint here return 0; }
5 建立依賴關係
6 編譯 執行
四使用第三方的庫 以boost庫為例
1 在Linux上下載boost 並編譯,將boost標頭檔案拷貝到/usr/include 生成的so檔案拷貝到/usr/lib 或者 /usr/lib64 (否則會編譯能通過但是執行不了)
2 vs2008上新建工程 右鍵選擇【VisualGDBProject Properties】
3 選擇Makefile settings
Include directory 第三方庫的標頭檔案
Library directory 第三方庫的庫檔案
Library directory 所需用庫檔名字(注意:比如需要使用libboost_thread.so 時,只填boost_thread)
4 coding
#include <iostream>
#include <boost/thread.hpp>
using namespace std;
void func(){
cout << "this is a thread !" << endl;
}
int main(int argc, char *argv[])
{
boost::thread th1(func);
th1.join();
char sz[] = "Hello, World!\n"; //Hover mouse over "sz" while debugging to see its contents
cout << sz << endl; //<================= Put a breakpoint here
return 0;
}