導航:首頁 > 操作系統 > includepathlinux

includepathlinux

發布時間:2022-10-31 11:56:13

A. 如何在linux下利用Libusb與HID USB設備通信

由於公司的產品,導致我在Linux下寫usb通信的代碼出現了許多的問題,最後發現這些設備只能通過控制傳輸來操作設備,所以後面的問題就迎刃而解了。現在貼上當時在QT下寫的代碼,以防日後再碰到此類問題的時候翻查。
還有在QT下使用libusb庫的時候一定要在(項目名.pro)文件加上:

[cpp] view plain
INCLUDEPATH += /usr/include/libusb-1.0
LIBS += -L"/usr/lib/x86_64-linux-gnu" -lusb-1.0
否則程序無法找到該庫的路徑。

[cpp] view plain
libusb_device **devs;
libusb_device_handle *dev_handle;
libusb_context *ctx=NULL;
struct libusb_device_descriptor desc;
int r;
ssize_t cnt;
r=libusb_init(&ctx);
if(r<0)
{
//printf("init error");
QMessageBox::about(this,"haha","initialerror");
return ;
}
libusb_set_debug(ctx,3);
//cnt=libusb_get_device_list(ctx,&devs);
dev_handle=libusb_open_device_with_vid_pid(ctx,VID,PID);
if(dev_handle==NULL)
QMessageBox::about(this,"haha","open my dev error");
else
QMessageBox::about(this,"haha","open my dev success");
//libusb_free_device_list(devs,1);
if(libusb_kernel_driver_active(dev_handle,0)==1)
{
QMessageBox::about(this,"haha","kernel driver active");
if(libusb_detach_kernel_driver(dev_handle,0)==0)
QMessageBox::about(this,"haha","kernel driver detached");
}
r=libusb_claim_interface(dev_handle,0);
if(r<0)
{
QMessageBox::about(this,"haha","cannot claim interface");
return ;
}
QMessageBox::about(this,"haha","claimed interface");
// start use this usb
unsigned char dataOut[0x30]={0};
dataOut[0]=0x00;
dataOut[1]=0x02;
dataOut[2]=0x08;
dataOut[3]=0x00;
dataOut[4]=0x02;
dataOut[5]=0x00;
dataOut[6]=0xb2;
dataOut[7]=0x30;
dataOut[8]=dataOut[2]^dataOut[3]^dataOut[4]^dataOut[5]^dataOut[6]^dataOut[7];
//r=libusb_interrupt_transfer(dev_handle,LIBUSB_ENDPOINT_OUT, dataOut,9, &actual_length, 0);
//r=libusb_bulk_transfer(dev_handle,LIBUSB_ENDPOINT_OUT,dataOut,9,&actual_length,5000);
//此設備必須用控制傳輸
r=libusb_control_transfer(dev_handle, 0x21, 0x09, 0x0300, 0x00, dataOut+1, 0x20, 1000);
unsigned char dataRead[0x30]={0};
r=libusb_control_transfer(dev_handle, 0xa1, 0x01, 0x0300, 0x00, dataRead, 0x20, 1000);
if(r<0)
{
QMessageBox::about(this,"haha","transfer data error");
}else
{
QMessageBox::about(this,"haha","transfer data success");
}
//release everything
r=libusb_release_interface(dev_handle,0);
libusb_attach_kernel_driver(dev_handle,0);
libusb_close(dev_handle);
libusb_exit(ctx);

B. 如何用qt在linux中編寫並使用動態鏈接庫

先寫好實現動態鏈接庫的libmy.cpp文件和libmy.h文件,如下:

// libmy.cpp

#include"libmy.h"

#include<iostream>

using namespace std;
MyLib::MyLib()
{
}

MyLib::~MyLib()
{
}

void MyLib::hello()
{
cout << "hello world~!" << endl;
}

// libmy.h文件

#ifndef LIBMY_H
#define LIBMY_H
class MyLib

{
public:
MyLib();
~MyLib();
void hello();
};
#endif /*LIBMY_H*/

然後寫好pro文件,如下:

TEMPLATE = lib
TARGET =DllTest

HEADERS += libmy.h
SOURCES += libmy.cpp

保存關閉,文件名命名為MyDll.pro
在Shell里執行qmake MyDll.pro,在沒有錯誤的情況下,然後執行make ,可以看到生成了幾個後綴名為so的文件,如下圖:

C. mac版visual+studio怎麼用

摘要 c_cpp_properties.json

D. Qt Linux 下 <QWidget> <QSystemTrayIcon> <QLabel> 等頭文件包含時 No such file or directory

5.0.1我倒沒裝,我用的是4.8
不過,很明顯這個路徑配置出問題了,include path配置不對,或者你的文件許可權不對,以至於你甚至沒有許可權去讀取這些頭文件,
第一個情況:

你是用Qt Creater工具寫代碼的嗎?
可以試一下這樣:
在打開的項目中,編輯 標簽下,左側欄右鍵對應的工程,添加新文件,選擇C++,C++頭文件,
將Qt的include目錄及其所有子目錄添加一遍

確實比較麻煩,不過你還可以修改項目的pro文件,前提是你要知道這個文件是幹嘛用的,每個項表示什麼意思,然後再linux下,用ls -l對include 所有子目錄列出重定向到一個臨時文件,然後對這個文件編輯一下,在復制過去,各種辦法吧,看你怎麼用了

第二個情況:
許可權不夠,這就得用include目錄的所有者,對include目錄及其所有子目錄的所有文件chmod a+r -R include

這些東西一般安裝之後基本的變數都應該配置好的,至於為什麼,估計安裝不對吧

除了includepath,其他一些變數也要相應改,確實難搞

搞不定的話,建議你重新裝個4.x的吧

E. linux下QT4自帶的sqlite驅動不可用該怎麼解決

我告訴你個方法,絕對管用,你這種情況是沒有安裝mysql的驅動,提示只有sqlite的驅動。在命令行下安裝libqt4-sql-mysql(sudoapt-getinstalllibqt4-sql-mysql),然後將/usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so拷貝到你的QtSDKsqldrivers目錄下,我的是在/QtSDK/Desktop/Qt/481/gcc/plugins/sqldrivers,裡面同時還有qsqlite.so,所以剛才會說只能找到qsqlite

F. 跪求大神指導:linux下使用gsoap生成C++代碼訪問WebService編譯出錯

找人來幫助你解決問題,這將是幫助吧!

閱讀全文

與includepathlinux相關的資料

熱點內容
怎麼批量有順序的命名文件夾 瀏覽:209
杭州程序員健身 瀏覽:17
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151