Coder Social home page Coder Social logo

Comments (9)

altonen avatar altonen commented on May 26, 2024

hello,
I strongly suggest you use qtcreator on windows for the time being. There is visual studio support on some level (though it's not public yet) but i haven't tested the code at all so I don't know how well it works.

I will push the new code to github and create qtcreator project file for the examples so that they are easier to use. I admit the linking instructions for windows may seem a little convoluted but here's an example on how to link against kvzrtp on windows: https://github.com/ultravideo/kvazzup/blob/master/Kvazzup.pro#L250

from uvgrtp.

fador avatar fador commented on May 26, 2024

Basically you need a .lib file to link it in visual studio (or just include the whole library in the project..). The .a library works only in the mingw build.
Hopefully we can get the experimental visual studio support pushed here soon, that should fix those errors, but it's not 100% tested as @altonen mentioned.

from uvgrtp.

HikariS97 avatar HikariS97 commented on May 26, 2024

@altonen Thanks for your quick reply. I have read the marked .pro file. It's too difficult. I have tried to edit a .pro file. Still have errors, it seems the way to add static lib is still wrong. Can u give me some clear(for me) advices?
The Path F:\kva\build-kvzrtp-Desktop_Qt_5_14_2_MinGW_64_bit-Debug\debug is where libkvzrtp.a generated, by QtCreator. And there are aslo many .o files in the same folder.
The Path F:\kva\kvzRTP\src is the subfoler of the repo.

Here's my .pro file:
`TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

SOURCES +=
main.cpp
INCLUDEPATH += F:/kva/kvzRTP/src
win32: LIBS += F:/kva/build-kvzrtp-Desktop_Qt_5_14_2_MinGW_64_bit-Debug/debug/libkvzrtp.a`

from uvgrtp.

altonen avatar altonen commented on May 26, 2024

hello,
there are two problems in your project file:
the includepath is wrong because kvzrtp uses includes like "#include <kvzrtp/lib.hh>". You can fix this by creating a following folder structure:

mkdir F:/kva/kvzrtp
mkdir F:/kva/kvzrtp/formats
cp F:/kva/kvzRTP/src/*.hh F:/kva/kvzrtp
cp F:/kva/kvzRTP/src/formats/*.hh F:/kva/kvzrtp/formats

and then setting INCLUDEPATH = F:/kva/kvzrtp

Try using the following for the library options:

LIBS += -LF:/kva/build-kvzrtp-Desktop_Qt_5_14_2_MinGW_64_bit-Debug/debug/ -lkvzrtp

These may work but if not, await my update. I will add a step by step guide on how to get the examples working. It's actually quite tedious and I have to figure out how to make it simpler

from uvgrtp.

altonen avatar altonen commented on May 26, 2024

hello,
github now includes all the latest changes, including support for msvc.

I have also added instruction to examples/README.md about the examples. I was able to get sending.cc working on Windows 7 following them so they should describe the right things in right order.

Recap: first run the prepare.bat which creates two folders lib/ and include/. These folders should be in the same folder with benchmarks/, examples/ and src/. If not, the script was ran from wrong folder. The include directory contains folder kvzrtp which in turn contains the header files and a formats folder for format headers.

When you have compiled kvzrtp, copy the library file (libkvzrtp.a) from the Qt build directory to the lib/ directory at the root. For you, this would mean that you copy the file from F:/kva/build-kvzrtp-Desktop_Qt_5_14_2_MinGW_64_bit-Debug/debug/libkvzrtp.a to F:/kva/kvzRTP/lib

When that is done, open the example.pro file which contains the necessary instructions for building sending.cc. If you wish to try other example codes, just change sending.cc with the name of the file you want to test.

Then build and run example.pro. Note: the Qt build directory for example.pro MUST be in the same directory as lib/, include/, and benchmarks. It should've been created there automatically but if it's not there, you need to update the INCLUDEPATH and LIB variables in the example.pro to point to correct folders.

Remember that you must also have the posix threads available

from uvgrtp.

HikariS97 avatar HikariS97 commented on May 26, 2024

@altonen
Hi,
Thanks for your reply. I have followed your instruction, and got some errors. Perhaps, the right INCLUDEPATH is the parrent folder of kvzrtp. I tried F:/kva/kvzrtp, and errors "no such files" appeared.

Secondly, after INCLUDEPATH corrected, I got same errors like before.
微信截图_20200416200350
If I delete the line "LIB += ...", these errors also appear. I think the source of the errors is the configuration of static library generated.

By the way, I have tried complie kvzrtp on Ubuntu16.04, I got errors in frame.hh about getrandom. the compiler can't find random.h by <sys/random.h> , so I changed it to </usr/include/linux/random.h>. Then another error, getrandom is not declared in this scope. I have searched on stackflows and someone got same error, and fixed it by using syscall(getrandom, ...).
I'm excited about your work, kvzrtp and kvazzup. If it's just some bugs of configuration but not some logical errors, I hope it could be fixed up as soon.

Thank you.

from uvgrtp.

altonen avatar altonen commented on May 26, 2024

hello @HikariS97 ,
The errors your image shows seem valid. There was a lot of API changes a while back and create_writer/create_reader was replaced with create_stream. I'm not sure what the ULONG error is about. If you are still interested in trying, I'd recommend you to delete everything, reclone the repository, rebuild the library from scratch and follow steps I described in my last message. It should work out of the box

About that ubuntu error. It should be present because getrandom() was added in release 3.17 [0] and Ubuntu 16.04 had version 4.4 [1] of the kernel. Unfortunately I cannot help you with that because sys/random.h is present on my computer and looking at the provided documentation, it should be present on your computer too.

I'm quite certain these are just configuration errors because the library has been working on multiple OSs and computers. I've attached tree /f output of the correct folder structure. If all else fails, you can try to mimic that and it should work.

▒ ▒▒build-kvzrtp-Desktop_Qt_5_14_0_MinGW_64_bit-Debug
▒       libkvzrtp.a
▒
▒▒▒▒kvz-rtplib
    ▒▒▒▒build-example-Desktop_Qt_5_14_0_MinGW_64_bit-Debug
    ▒       .qmake.stash
    ▒       example.exe
    ▒       Makefile
    ▒       sending.o
    ▒
    ▒▒▒▒examples
    ▒       binding.cc
    ▒       example.pro
    ▒       example.pro.user
    ▒       prepare.bat
    ▒       README.md
    ▒       sending.cc
    ▒
    ▒▒▒▒include
    ▒   ▒▒▒▒kvzrtp
    ▒       ▒   clock.hh
    ▒       ▒   crypto.hh
    ▒       ▒   debug.hh
    ▒       ▒   dispatch.hh
    ▒       ▒   frame.hh
    ▒       ▒   hostname.hh
    ▒       ▒   lib.hh
    ▒       ▒   media_stream.hh
    ▒       ▒   mingw_inet.hh
    ▒       ▒   multicast.hh
    ▒       ▒   poll.hh
    ▒       ▒   queue.hh
    ▒       ▒   random.hh
    ▒       ▒   receiver.hh
    ▒       ▒   rtcp.hh
    ▒       ▒   rtp.hh
    ▒       ▒   runner.hh
    ▒       ▒   send.hh
    ▒       ▒   sender.hh
    ▒       ▒   session.hh
    ▒       ▒   socket.hh
    ▒       ▒   srtp.hh
    ▒       ▒   util.hh
    ▒       ▒   zrtp.hh
    ▒       ▒
    ▒       ▒▒▒▒formats
    ▒               generic.hh
    ▒               hevc.hh
    ▒               opus.hh
    ▒
    ▒▒▒▒lib
    ▒       libkvzrtp.a
    ▒

[0] http://man7.org/linux/man-pages/man2/getrandom.2.html
[1] https://wiki.ubuntu.com/XenialXerus/ReleaseNotes

from uvgrtp.

HikariS97 avatar HikariS97 commented on May 26, 2024

I delete all files and redownload the repo, and success.
Maybe I have deleted some files accidentally. I remember that some .o files are not generated. e.g. session.o
I'm not sure. But as least, everything works fine now. Thanks very much for your help !

from uvgrtp.

altonen avatar altonen commented on May 26, 2024

Good to hear, closing this issue

from uvgrtp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.