رفتن به مطلب
جامعهٔ برنامه‌نویسان ایران
کامبیز اسدزاده

روش افزودن کتابخانه‌های دیگر به محیط Qt Creator


پست های پیشنهاد شده

سلام،

بنابر درخواست اعضای محترم لازم شد آموزشی در رابطه با نحوهٔ افزودن کتابخانه‌های دیگر به این محیط را توضیح دهیم. من در این آموزش کتابخانهٔ Poco را در نظر گرفته ام. کتابخانه را دانلود کرده و در یک مسیر مشخص اضافه کنید. برای مثال C:/MyLib/poco-1.9.0-all و یا در لینوکس و مک در مسیر /Users/{username}/Documents/Libs/poco-1.9.0-all در نظر داشته باشید که هر کتابخانه‌ای معمولاً دارای دو پوشه lib و include خواهد بود که شما باید این دو را به پروژهٔ خود اضافه کنید.

هر کتابخانه‌ای باید قبل از کامپایل پیکربنی شده و سپس بیلد شود. برای مثال در کتابخانهٔ پوکو دستورات زیر را بعد از دریافت اجرا خواهیم کرد.
 

cd /Users/username/Documents/Libs/poco-1.9.0-all

سپس دستور ./configure و بعد از آن دستور make را اجرا کنید تا کتابخانه شروع به کامپایل شدن کند. بعد از کامپایل در پوشهٔ lib تمامی کتابخانه‌ها ایجاد خواهند شد.

 

وارد محیط Qt Creator شده و سپس بعد از ایجاد یک پروژه بر روی آن راست کلیک و گزینهٔ add library را انتخاب کنید.

Screen Shot 2018-06-13 at 13.53.39.png

سپس گزینهٔ External library را انتخاب نمایید.

Screen Shot 2018-06-13 at 13.55.48.png

در مرحلهٔ بعد فایل libPocoFoundation.60.dylib و libPocoNet.60.dylib را در بخش library file و سپس مسیر include آن را در include path وارد کنید که مشابه مسیر زیر خواهد بود.

Library file : /Users/kambiz/Documents/Libs/poco-1.9.0-all/lib/Darwin/x86_64/libPocoFoundation.60.dylib
Include path : /Users/kambiz/Documents/Libs/poco-1.9.0-all/Foundation/include
Library file : /Users/kambiz/Documents/Libs/poco-1.9.0-all/lib/Darwin/x86_64/libPocoNet.60.dylib
Include path : /Users/kambiz/Documents/Libs/poco-1.9.0-all/Net/include

بعد از افزودن کسیر و کتابخانه کُد تولید شده در فایل .pro به صورت زیر خواهد بود:

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../Libs/poco-1.9.0-all/lib/Darwin/x86_64/release/ -lPocoFoundation.60
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../Libs/poco-1.9.0-all/lib/Darwin/x86_64/debug/ -lPocoFoundation.60
else:unix: LIBS += -L$$PWD/../../Libs/poco-1.9.0-all/lib/Darwin/x86_64/ -lPocoFoundation.60

INCLUDEPATH += $$PWD/../../Libs/poco-1.9.0-all/Foundation/include
DEPENDPATH += $$PWD/../../Libs/poco-1.9.0-all/Foundation/include

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../Libs/poco-1.9.0-all/lib/Darwin/x86_64/release/ -lPocoNet.60
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../Libs/poco-1.9.0-all/lib/Darwin/x86_64/debug/ -lPocoNet.60
else:unix: LIBS += -L$$PWD/../../Libs/poco-1.9.0-all/lib/Darwin/x86_64/ -lPocoNet.60

INCLUDEPATH += $$PWD/../../Libs/poco-1.9.0-all/Net/include
DEPENDPATH += $$PWD/../../Libs/poco-1.9.0-all/Net/include

مراحل افزودن به پایان رسید، وارد محیط کیوت شده و داخل فایل main.cpp هدر‌های مرتبط با کتابخانه و همچنین کُد آزمایشی آن را اضافه کنید. در این مثال من از کتابخانهٔ Net استفاده می‌کنم.

//Qt Lib
#include <QCoreApplication>

//STL & External Lib

#include "Poco/Net/SocketAddress.h"
#include "Poco/Net/StreamSocket.h"
#include "Poco/Net/SocketStream.h"
#include "Poco/StreamCopier.h"
#include <iostream>

int main(int argc, char *argv[])
{
  QCoreApplication a(argc, argv);

  Poco::Net::SocketAddress sa("www.iostream.ir", 80);
  Poco::Net::StreamSocket socket(sa);
  Poco::Net::SocketStream str(socket);
  str << "GET / HTTP/1.1\r\n"
   "Host: www.iostream.ir\r\n"
   "\r\n";
  str.flush();
  Poco::StreamCopier::copyStream(str, std::cout);

  return a.exec();
}

برنامه را کامپایل و اجرا کنید ?

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام خسته نباشید.

میشه خواهش کنم نحوه پیکربندی و بیلد کردن در ویندوز و توضیح بفرمایید؟ 

ممنون میشم

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 2 دقیقه قبل، aliaydin گفته است :

سلام خسته نباشید.

میشه خواهش کنم نحوه پیکربندی و بیلد کردن در ویندوز و توضیح بفرمایید؟ 

ممنون میشم

روش رو دقیقاً طبق همین توضیحات پیش بگیرید، با این تفاوت که در پلتفرم ویندوز هستید.

این آموزش مرتبط رو هم مطالعه کنید :

در صورتی که موفق نشدید اطلاع بدین تا آموزش مخصوصی در رابطه با این کتابخانه قرار داده شود.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

توی command prompt امتحان کردم میگه دستور ./configure شناخته شده نیست

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

آقا من هر کاری کردم نشد دیگه نمیدونم چکار کنم.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 29 دقیقه قبل، aliaydin گفته است :

آقا من هر کاری کردم نشد دیگه نمیدونم چکار کنم.

توی ویندوز راحت‌ترین و ساده ترین روش این هست که شما فایل ALL_BUILD.vcxproj رو با ویژوال استودیو باز کنید و کامپایلش کنید. اگر این فایل موجود نبود از داخل هر یک از ماژول‌های مربوطه فایل مربوط به پروژه رو باز کنید و کامپایلش کنید.

در نظر بگیرید که باید OpenSSL بر روی سیستم شما هم نصب باشه.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

با توجه به روشی که توضیح دادید چکار کنیم که کتابخانه ی از نوع shared داخل خروجی امبد بشه؟(برای لینوکس و اندروید)

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 30 آذر 1398 در 00:50، amirb گفته است :

با توجه به روشی که توضیح دادید چکار کنیم که کتابخانه ی از نوع shared داخل خروجی امبد بشه؟(برای لینوکس و اندروید)

روشی که توضیح داده شده بود به همین مدل اشاره داشت.
باید توجه داشته باشید که فایل‌هایی با پسوند .a برای کتابخانه‌های ایستا و .so برای نوع داینامیک یا همون Shared هستند. البته باید توجه کنید حتماً روی کیت اندروید و لینوکس کتابخانه‌های مربوطه را کامپایل و به پروژه اضافه کنید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام مهندس

من کتابخانه boost  و بیلد کردم الان چطوری کامپایلش کنم تا بتونم به کیوت اضافه اش کنم؟

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 39 دقیقه قبل، Ali71321 گفته است :

سلام مهندس

من کتابخانه boost  و بیلد کردم الان چطوری کامپایلش کنم تا بتونم به کیوت اضافه اش کنم؟

سلام،

اگه بیلد کردی یعنی کامپلیلش کردی و کافیه به پروژه اضافش کنی.

بهتره اشاره‌ای به نسخهٔ بوست، کیوت و پلتفرمی که استفاده می‌کنی داشته باشی تا بهتر راهنمایی کنیم. معمولاً روش کامپایل در همهٔ کتابخانه‌ها یکسان هستند.

البته از ابزار‌هایی مثل conan، brew، vcpkg هم می‌تونید برای نصب این نوع کتابخانه‌ها استفاده کنید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

مهندس من با استفاده از کامپایلر ویژوال استودیو2010 بیلدش کردم و میخوام به کیوت ورژن 5.6 اضافه اش کنم

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 2 ساعت قبل، Ali71321 گفته است :

مهندس من با استفاده از کامپایلر ویژوال استودیو2010 بیلدش کردم و میخوام به کیوت ورژن 5.6 اضافه اش کنم

از کامپایلر MSVC2017 و به بالا مثل MSVC2019 استفاده کن، این نسخه‌ای که به کار گرفتی حتی بتونی کامپایل هم کنی قطعاً مشکلاتی با این نسخه از بوست خواهد داشت.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

@کامبیز اسدزاده متاسفانه به این نسخه ها دسترسی ندارم 

مشکل اینه که بعد کامپایل شدن پوشه include وجود نداره 

وقتی میخوام داخل پروژه با  #include  هدر و وارد کنم میشناسه ولی بعد ارور میده

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 13 آذر 1399 در 18:12، Ali71321 گفته است :

@کامبیز اسدزاده متاسفانه به این نسخه ها دسترسی ندارم 

مشکل اینه که بعد کامپایل شدن پوشه include وجود نداره 

وقتی میخوام داخل پروژه با  #include  هدر و وارد کنم میشناسه ولی بعد ارور میده

خب پوشهٔ نهایی بعد از make رو برای install کجا زدی؟

به چه روشی داری به پروژه اضافش می‌کنی؟ تحتِ چه ابزاری؟ QMake یا CMake؟

البته پیشنهاد من اینه که روی هر پلتفرمی که هستی، بوست رو تحت مخازن اصلی سیستم‌عامل نصب کن تا دیگه نیازی نباشه کامپایلش کنی.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

اگه منظورتون از پوشه نهایی همون مسیر فایل های lib هستش داخل پوشه بوست همون جاییه که کپی کردم که پوشه با نام stage ایجاد کرده

با استفاده از ابزار qmake 

منظور از مخازن اصلی سیستم عامل چی هست مهندس؟

یه مشکل دیگه هم اینه که نمیتونم با sql server  ارتباط بگیرم همچین اروری بهم میده 

Error : "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified QODBC3: Unable to connect"

و گاهی گاهی وقتا هم driver not loaded

کلا امکان برقراری ارتباط با sql server  تو محیط Qt  هستش؟

ممونم میشم راهنمایی کنید.با سپاس

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 2 ساعت قبل، Ali71321 گفته است :

اگه منظورتون از پوشه نهایی همون مسیر فایل های lib هستش داخل پوشه بوست همون جاییه که کپی کردم که پوشه با نام stage ایجاد کرده

با استفاده از ابزار qmake 

منظور از مخازن اصلی سیستم عامل چی هست مهندس؟

کار زیاد سختی نیست! این لینک رو بررسی کنید و طبق دستورات پیش برید.

در 2 ساعت قبل، Ali71321 گفته است :

یه مشکل دیگه هم اینه که نمیتونم با sql server  ارتباط بگیرم همچین اروری بهم میده 

Error : "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified QODBC3: Unable to connect"

و گاهی گاهی وقتا هم driver not loaded

کلا امکان برقراری ارتباط با sql server  تو محیط Qt  هستش؟

ممونم میشم راهنمایی کنید.با سپاس

به خاطر این هست که پلاکین مربوطه را کامپایل نکرده‌اید.

در 2 ساعت قبل، Ali71321 گفته است :

کلا امکان برقراری ارتباط با sql server  تو محیط Qt  هستش؟

بله پشتیبانی می‌کنه.

این توضیحات رو دنبال کنید و مطابق مثال برای Sql Server انجامش بدین.

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام مهندس خسته نباشی.مشکل اتصال به sql server رفع شد مشکل تو  connection string  بود.

سپاسگذارم

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خسته نباشید مهندس.

نحوه خواندن یک فایل اکسل در Qt  به چه شکلی هستش؟

پیشاپیش از راهنماییتون ممنونم🙏

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 1 ساعت قبل، Ali71321 گفته است :

خسته نباشید مهندس.

نحوه خواندن یک فایل اکسل در Qt  به چه شکلی هستش؟

پیشاپیش از راهنماییتون ممنونم🙏

سپاسگزاریم،

بهتر بود برای موضوع جدید، یک تاپیک جدید ایجاد می‌کردید.

به هر حال، این لینک رو بررسی کنید : https://wiki.qt.io/Handling_Microsoft_Excel_file_format

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو ملحق شوید

شما همین الآن می‌توانید مطلبی را ارسال و بعداً ثبت‌نام کنید. اگر حساب کاربری دارید، و با حساب کاربری خود مطلب ارسال کنید.
نکته: مطلب شما قبل از انتشار نیاز به بازبینی توسط میانجی‌گر‌ها دارد.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • جدید...