Jo2003 / vlc_record

15 stars 6 forks source link

errors while building on ubuntu - the same problem #11

Closed jacwrob closed 2 years ago

jacwrob commented 5 years ago

I've encountered the same problem as xxcriticxx (errors while building on ubuntu). Unfortunately, the link to your new build in that post is dead, i.e. http://www.filehosting.at/file/details/664829/iptv1world_2.69.4-20170512_amd64.deb - the file has been removed. Can you share the build with me? How/where can I find it?
Thank you!

Jo2003 commented 5 years ago

Hi! What error you get when building the program on Ubuntu?

jacwrob commented 5 years ago

Let me start from the beginning. I use Ubuntu 17.10 64-bit. I need IPTV stream player for iptv1world.com so I downloaded and installed iptv1world.com_2.69.4-20161110_amd64.deb package. Installation went smooth, but I can't run it, i.e.,

/usr/bin$ ./iptv1world.com 
bash: ./iptv1world.com: No such file or directory

It seams to be 32-bit package, even the name of the package says amd64, i.e.,

/usr/bin$ file iptv1world.com 
iptv1world.com: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=b20cca60879a033fa8203d0badd5a1f8426ab87b, stripped

I've added i386 architecture on my Ubuntu and now I see:

/usr/bin$ ./iptv1world.com 
./iptv1world.com: error while loading shared libraries: libvlc.so.5: cannot open shared object file: No such file or directory

I think it looks for vlc and other i386/32-bit libraries. Should I install all 32-bit dependencies?

Looking for the solution I went across your project and the other post. Following your directions I was able to build VLC-Record, IPTV stream player for Kartina.TV - works great! But I need IPTV stream player for iptv1world.com.

iptv1world.com_2.69.4-20161110_amd64.deb package doesn't work on my Ubuntu, I hoped your build iptv1world_2.69.4-20170512_amd64.deb works on 64-bit system.

Jo2003 commented 5 years ago

Hi! The package was created with the wrong binary file included. Therefore the file can't be started. I have seen this before and it was a mistake from the package maintainer (not me).

You can build the application at your own. You have already done it for Kartina, means your are almost there...

  1. Clone the repo to your Linux PC:
    git clone https://github.com/Jo2003/vlc_record.git
  2. Checkout the correct branch:
    cd vlc_record
    git checkout rodnoe.tv
  3. Build the program:
    qmake-qt4 iptv-record.pro
    make clean
    make release
  4. Find the executable file in ./release
  5. Rename it to your needs and put it into /usr/bin

Hope that helps!

jacwrob commented 5 years ago

I've got to make release and then I see:

In file included from /usr/include/c++/7/cstdlib:77:0,
                 from /usr/include/c++/7/bits/stl_algo.h:59,
                 from /usr/include/c++/7/algorithm:62,
                 from /usr/include/qt4/QtCore/qglobal.h:68,
                 from /usr/include/qt4/QtCore/qnamespace.h:45,
                 from /usr/include/qt4/QtCore/qobjectdefs.h:45,
                 from /usr/include/qt4/QtCore/qobject.h:47,
                 from /usr/include/qt4/QtCore/qcoreapplication.h:45,
                 from /usr/include/qt4/QtGui/qapplication.h:45,
                 from /usr/include/qt4/QtGui/QApplication:1,
                 from cplayer.h:15,
                 from cplayer.cpp:13:
/usr/include/c++/7/bits/std_abs.h:56:3: note: candidate: long int std::abs(long int)
   abs(long __i) { return __builtin_labs(__i); }
   ^~~
/usr/include/c++/7/bits/std_abs.h:61:3: note: candidate: long long int std::abs(long long int)
   abs(long long __x) { return __builtin_llabs (__x); }
   ^~~
/usr/include/c++/7/bits/std_abs.h:70:3: note: candidate: constexpr double std::abs(double)
   abs(double __x)
   ^~~
/usr/include/c++/7/bits/std_abs.h:74:3: note: candidate: constexpr float std::abs(float)
   abs(float __x)
   ^~~
/usr/include/c++/7/bits/std_abs.h:78:3: note: candidate: constexpr long double std::abs(long double)
   abs(long double __x)
   ^~~
/usr/include/c++/7/bits/std_abs.h:84:3: note: candidate: constexpr __int128 std::abs(__int128)
   abs(__GLIBCXX_TYPE_INT_N_0 __x) { return __x >= 0 ? __x : -__x; }
   ^~~
/usr/include/c++/7/bits/std_abs.h:102:3: note: candidate: constexpr __float128 std::abs(__float128)
   abs(__float128 __x)
   ^~~
Makefile.Release:1651: recipe for target 'release/cplayer.o' failed
make[1]: *** [release/cplayer.o] Error 1
make[1]: Leaving directory '/home/j/temp/vlc_record'
Makefile:34: recipe for target 'release' failed
make: *** [release] Error 2

Any idea what may cause it?

Jo2003 commented 5 years ago

I fixed these issues. Please update your working copy:

cd vlc_record
git pull --ff
make clean
make release

It should work now.

jacwrob commented 5 years ago

This time the problem could be on my side, it complains about missing libraries, but files are clearly in that folder.

 -L/usr/lib/x86_64-linux-gnu -lvlc -lX11 -lQtHelp -lQtSql -lQtXml -lQtGui -lQtNetwork -lQtCore -lpthread 
/usr/bin/ld: cannot find -lQtHelp
/usr/bin/ld: cannot find -lQtSql
/usr/bin/ld: cannot find -lQtXml
/usr/bin/ld: cannot find -lQtGui
/usr/bin/ld: cannot find -lQtNetwork
/usr/bin/ld: cannot find -lQtCore
collect2: error: ld returned 1 exit status
Makefile.Release:297: recipe for target 'release/iptv-record' failed
make[1]: *** [release/iptv-record] Error 1
`make[1]:` Leaving directory '/home/j/temp/vlc_record'
Makefile:34: recipe for target 'release' failed
make: *** [release] Error 2

Any idea what can cause it? I appreciate all your help.

Jo2003 commented 5 years ago

Link to ".so" files is missing. This happens when qt4 isn't installed for development.

sudo apt-get install qt4-default qt4-dev-tools qt4-doc

... should help. After that build should go smooth.

jacwrob commented 5 years ago

You were right. The build is completed. Renaming was tricky, but everything works now.

Thank you so much for all your help !!!