HermanChen / mpp

Rockchip MPP(Media Process Platfrom)
162 stars 73 forks source link

Missing header files #28

Closed Nybon closed 3 years ago

Nybon commented 3 years ago

Hello.

I'm building mpp into a Qt program and facing difficulties while importing the necessary header files. I'm building my program on a Linux distribution and the media library struggles to find header files located in other folders of the library.

Here is a picture illustrating what I am talking about. GithubPNG My code finds every header file, but the header files can't find other header files that are not located in the same folder. As shown in the picture, _mpp-develop\mpp\base\mpp_bufslot.cpp is looking for _mpplog.h, but it crashes since it is not in the same folder.

So, what is actually the correct way of handling the library files? Where do I place the folders from this API?

HermanChen commented 3 years ago

The cmake script handled the include directories by include_directories in CMakeLists.txt

Nybon commented 3 years ago

I changed my build system to cmake and here is my CMakeLists.txt file. Capture What should I add to my CMakeLists.txt?

HermanChen commented 3 years ago

include_directories(your_directory)

Nybon commented 3 years ago

Capture I'm now able to find all the headers, but I am not able to use the functions. What should I write in my CMakeLists.txt to fix this?

HermanChen commented 3 years ago

You also need to add more source code. The mpp_packet is in mpp/base/

Nybon commented 3 years ago

This example https://github.com/WainDing/mpp_linux_cpp/blob/master/CMakeLists.txt imports the whole library with target_link_libraries(mpp_linux_demo mpp pthread drm).

Can I use something similar in my situation?

I added these lines to my CMakeLists.txt file: include_directories(inc) include_directories(utils) include_directories(osal/inc) include_directories(mpp/inc) add_subdirectory(mpp) Capture

HermanChen commented 3 years ago

Yes, it is right.

Nybon commented 3 years ago

I am using target_link_libraries(mpp_linux_demo mpp pthread drm).

I have included the following directories: include_directories(inc) include_directories(utils) include_directories(osal/inc) include_directories(mpp/inc) include_directories(mpp/hal/inc) add_subdirectory(mpp)

And I am still getting the error messages shown in the picture above.

HermanChen commented 3 years ago

Sub-directory should be also added. The sub-diretory CMakeLists.txt should be recursively included.

Nybon commented 3 years ago

I have added: add_subdirectory(mpp) add_subdirectory(osal) add_subdirectory(utils) add_subdirectory(test) add_subdirectory(mpp-develop) add_subdirectory(hal) add_subdirectory(base) add_subdirectory(codec) add_subdirectory(mpp/legacy) add_subdirectory(mpp/hal) add_subdirectory(mpp) add_subdirectory(osal) add_subdirectory(test) add_subdirectory(utils) add_subdirectory(mpp/hal) add_subdirectory(mpp/base) add_subdirectory(mpp/codec) add_subdirectory(mpp/vproc) add_subdirectory(osal/test) add_subdirectory(mpp/legacy) add_subdirectory(mpp/hal/vpu) add_subdirectory(mpp/codec/rc) add_subdirectory(mpp/base/test) add_subdirectory(mpp/codec/dec) add_subdirectory(mpp/codec/enc) add_subdirectory(mpp/hal/dummy) add_subdirectory(mpp/hal/rkenc) add_subdirectory(mpp/vproc/iep) add_subdirectory(mpp/vproc/rga) add_subdirectory(mpp/hal/common) add_subdirectory(mpp/hal/vpu/common) add_subdirectory(mpp/vproc/iep/test)

But nothing new happens.

HermanChen commented 3 years ago

add_subdirectory is to add the CMakeLists.txt in the subdirectory. Use include_directories also to add include directory.

EhsanVahab commented 2 years ago

I have added: add_subdirectory(mpp) add_subdirectory(osal) add_subdirectory(utils) add_subdirectory(test) add_subdirectory(mpp-develop) add_subdirectory(hal) add_subdirectory(base) add_subdirectory(codec) add_subdirectory(mpp/legacy) add_subdirectory(mpp/hal) add_subdirectory(mpp) add_subdirectory(osal) add_subdirectory(test) add_subdirectory(utils) add_subdirectory(mpp/hal) add_subdirectory(mpp/base) add_subdirectory(mpp/codec) add_subdirectory(mpp/vproc) add_subdirectory(osal/test) add_subdirectory(mpp/legacy) add_subdirectory(mpp/hal/vpu) add_subdirectory(mpp/codec/rc) add_subdirectory(mpp/base/test) add_subdirectory(mpp/codec/dec) add_subdirectory(mpp/codec/enc) add_subdirectory(mpp/hal/dummy) add_subdirectory(mpp/hal/rkenc) add_subdirectory(mpp/vproc/iep) add_subdirectory(mpp/vproc/rga) add_subdirectory(mpp/hal/common) add_subdirectory(mpp/hal/vpu/common) add_subdirectory(mpp/vproc/iep/test)

But nothing new happens.

Dear @Nybon did you solve the problem? could you please share your experience?

Nybon commented 2 years ago

I have added: add_subdirectory(mpp) add_subdirectory(osal) add_subdirectory(utils) add_subdirectory(test) add_subdirectory(mpp-develop) add_subdirectory(hal) add_subdirectory(base) add_subdirectory(codec) add_subdirectory(mpp/legacy) add_subdirectory(mpp/hal) add_subdirectory(mpp) add_subdirectory(osal) add_subdirectory(test) add_subdirectory(utils) add_subdirectory(mpp/hal) add_subdirectory(mpp/base) add_subdirectory(mpp/codec) add_subdirectory(mpp/vproc) add_subdirectory(osal/test) add_subdirectory(mpp/legacy) add_subdirectory(mpp/hal/vpu) add_subdirectory(mpp/codec/rc) add_subdirectory(mpp/base/test) add_subdirectory(mpp/codec/dec) add_subdirectory(mpp/codec/enc) add_subdirectory(mpp/hal/dummy) add_subdirectory(mpp/hal/rkenc) add_subdirectory(mpp/vproc/iep) add_subdirectory(mpp/vproc/rga) add_subdirectory(mpp/hal/common) add_subdirectory(mpp/hal/vpu/common) add_subdirectory(mpp/vproc/iep/test) But nothing new happens.

Dear @Nybon did you solve the problem? could you please share your experience?

I never got it to work, but I found another solution. The project contains samples that will run fine. Try editing the samples instead of building the whole thing from scrath. It may be a bit messy, but it will at least work. Please share a better way to do this if you find one. Remember to keep the same file positions!

EhsanVahab commented 2 years ago

I have added: add_subdirectory(mpp) add_subdirectory(osal) add_subdirectory(utils) add_subdirectory(test) add_subdirectory(mpp-develop) add_subdirectory(hal) add_subdirectory(base) add_subdirectory(codec) add_subdirectory(mpp/legacy) add_subdirectory(mpp/hal) add_subdirectory(mpp) add_subdirectory(osal) add_subdirectory(test) add_subdirectory(utils) add_subdirectory(mpp/hal) add_subdirectory(mpp/base) add_subdirectory(mpp/codec) add_subdirectory(mpp/vproc) add_subdirectory(osal/test) add_subdirectory(mpp/legacy) add_subdirectory(mpp/hal/vpu) add_subdirectory(mpp/codec/rc) add_subdirectory(mpp/base/test) add_subdirectory(mpp/codec/dec) add_subdirectory(mpp/codec/enc) add_subdirectory(mpp/hal/dummy) add_subdirectory(mpp/hal/rkenc) add_subdirectory(mpp/vproc/iep) add_subdirectory(mpp/vproc/rga) add_subdirectory(mpp/hal/common) add_subdirectory(mpp/hal/vpu/common) add_subdirectory(mpp/vproc/iep/test) But nothing new happens.

Dear @Nybon did you solve the problem? could you please share your experience?

I never got it to work, but I found another solution. The project contains samples that will run fine. Try editing the samples instead of building the whole thing from scrath. It may be a bit messy, but it will at least work. Please share a better way to do this if you find one. Remember to keep the same file positions!

I'm trying to make a simple and clear C++ example. let you know if I do.

EhsanVahab commented 2 years ago

I have added: add_subdirectory(mpp) add_subdirectory(osal) add_subdirectory(utils) add_subdirectory(test) add_subdirectory(mpp-develop) add_subdirectory(hal) add_subdirectory(base) add_subdirectory(codec) add_subdirectory(mpp/legacy) add_subdirectory(mpp/hal) add_subdirectory(mpp) add_subdirectory(osal) add_subdirectory(test) add_subdirectory(utils) add_subdirectory(mpp/hal) add_subdirectory(mpp/base) add_subdirectory(mpp/codec) add_subdirectory(mpp/vproc) add_subdirectory(osal/test) add_subdirectory(mpp/legacy) add_subdirectory(mpp/hal/vpu) add_subdirectory(mpp/codec/rc) add_subdirectory(mpp/base/test) add_subdirectory(mpp/codec/dec) add_subdirectory(mpp/codec/enc) add_subdirectory(mpp/hal/dummy) add_subdirectory(mpp/hal/rkenc) add_subdirectory(mpp/vproc/iep) add_subdirectory(mpp/vproc/rga) add_subdirectory(mpp/hal/common) add_subdirectory(mpp/hal/vpu/common) add_subdirectory(mpp/vproc/iep/test) But nothing new happens.

Dear @Nybon did you solve the problem? could you please share your experience?

I never got it to work, but I found another solution. The project contains samples that will run fine. Try editing the samples instead of building the whole thing from scrath. It may be a bit messy, but it will at least work. Please share a better way to do this if you find one. Remember to keep the same file positions!

dear @Nybon I finally could Make it and use Opencv frame as input frame. https://github.com/EhsanVahab/rockchip-mpp-encoder