+1 👍
176 lượt xem
bởi (🏅3)
đã sửa bởi
Hi mọi người,

Vấn đề là em đang muốn build source https://github.com/Tencent/ncnn để dùng như 1 lib trong Qt ạ. Các anh cho em hỏi làm sao để build và add vào Qt dùng như thư viện trong source của Qt được ạ. Em có search thấy 1 hướng dẫn https://www.programmersought.com/article/92586253484/ nhưng mà vẫn chưa làm được ạ.

Em cũng đã thử build source trên bằng bộ tools vs2017 rồi add vào Qt như external library nhưng khi compiler bằng vs2017 và mingw32 thì đều dính bug ạ.

Em cảm ơn nhiều ạ.
bởi (🏅169)

Em cũng đã thử build source trên bằng bộ tools vs2017 rồi add vào Qt như external library nhưng khi compiler bằng vs2017

Bị bug như thế nào em nhỉ ?
bởi (🏅3)
đã sửa bởi
*Em có làm theo anh chỉ ở dưới, build ncnn bằng mingw thì đã chạy được rồi ạ. Em cảm ơn anh nhiều. Em xin show bug trước đó em gặp ra đây, để sau có bạn nào build bằng msvc dính trường hợp này có thể tránh ạ.

Trước đó em build source ncnn bằng msvc2017, và add vào Qt, thì compiler trong Qt bằng mingw32 và msvc2017-64bit thì dính bug như hình dưới:
file pro

- build ncnn bằng msvc2017 -> compiler bằng mingw32
build ncnn bằng msvc2017 -> compiler bằng msvc2017:


 

1 Câu trả lời

+1 👍
bởi (🏅169)
đã được chọn bởi
 
Câu trả lời hay nhất

A làm thử theo các step như sau thì link với lib OK nhé. A dùng compiler mingw730_64 của Qt vì máy anh đang ko cài MSVC
1. Dùng CMake generate make file với compiler là x86_64-w64-mingw32-gcc.exe và x86_64-w64-mingw32-g++.exe
2. Dùng mingw32-make.exe để make install ncnn lib. Chạy command sau ở trong folder chứa Makefile được generate ra

mingw32-make.exe install

3. Thử viện ncnn sẽ được install vào folder đã đc cấu hình ở CMake

4. Tạo thử 1 project test trên Qt và include thử viện ncnn đã build ở trên vào

Trong file *.pro cấu hình như sau



Trong file source thì include header của ncnn

#include <QCoreApplication>
#include <ncnn/cpu.h>

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

    return a.exec();
}

5. Compile & Link

14:05:00: Running steps for project untitled...
14:05:00: Configuration unchanged, skipping qmake step.
14:05:00: Starting: "C:\Qt\Qt5.12.7\Tools\mingw730_64\bin\mingw32-make.exe" -j12
C:/Qt/Qt5.12.7/Tools/mingw730_64/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'C:/Users/tuanpm13/Documents/build-untitled-Desktop_Qt_5_12_7_MinGW_64_bit-Debug'
mingw32-make[1]: Nothing to be done for 'first'.
mingw32-make[1]: Leaving directory 'C:/Users/tuanpm13/Documents/build-untitled-Desktop_Qt_5_12_7_MinGW_64_bit-Debug'
14:05:02: The process "C:\Qt\Qt5.12.7\Tools\mingw730_64\bin\mingw32-make.exe" exited normally.
14:05:02: Elapsed time: 00:02.
bởi (🏅3)
Mấy chỗ khác thì em chạy được không có error, nhưng mà khi sử dụng đến class Net thì dính quả bug như hình ạ. Em có search gg thì có 1 issues:
-https://github.com/Tencent/ncnn/issues/630
https://github.com/Tencent/ncnn/issues/667
nhưng mà chung quy lại em vẫn chưa fix được và cũng không biết quả bug kia nó sinh ra từ đâu á a. 

Anh cho em hỏi thêm là em đang muốn dùng Qt Felgo + QML để build ra app chạy trên điện thoại hoặc trên device embedded nữa, em đang muốn dùng repo ncnn này để xử lý phần AI ấy ạ. Thì nếu tích hợp ncnn này vào Qt không được suôn sẻ thì có hướng đi nào khác nữa không ạ?



 
bởi (🏅169)

Dị nhỉ, a build OK.

INCLUDEPATH += \
        D:\\ncnn\\build\\install\\include

LIBS += -LD:\\ncnn\\build\\install\\lib -lncnn -fopenmp


bởi (🏅3)
uây, em thêm -fopenmp giống anh là build ok rồi á anh. Em cảm ơn anh nhiều. hehe
bởi (🏅169)
Oke em
bởi (🏅0)
Hí em thấy topic này khá thú vị cho em hỏi cái lib fopenmp là gì thế ạ
bởi (🏅3)
Hi bạn, bạn đọc link này thử, vì mình không thực sự hiểu rõ fopenmp kia nên không dám chém.
https://stackoverflow.com/questions/22938238/difference-between-linking-openmp-with-fopenmp-and-lgomp
bởi (🏅169)
Đọc bài này sẽ hiểu openmp là gì nhé

https://cppdeveloper.com/c-nang-cao/xu-ly-song-song-voi-openmp-trong-c/
Coding Guru là nơi dành cho cộng đồng lập trình viên Việt Nam hỗ trợ nhau về tất cả các vấn đề liên quan đến công nghệ.

Chúng ta hãy cùng nhau xây dựng một cộng đồng công nghệ Việt Nam mạnh mẽ, thúc đẩy và giúp đỡ nhau cùng phát triển, thăng tiến trong sự nghiệp.

***
Nơi đam mê hội tụ
***

Một số câu hỏi gần đây có thể tương tự hoặc liên quan ↓

...