Problem z instalacją biblioteki Boost

0

Witam

Mam problem z instalacją biblioteki.Jestem nowicjuszem więc się nie orietnuje.
Robię z pomocą tego tutka - http://wiki.codeblocks.org​/index.php/BoostWindowsQuickRef

Zrobiłem kolejno:

C:>PATH C:\boost-jam-3.1.18-1-ntx86;%PATH%

C:>PATH C:\Pliki programów (x86)\CodeBlocks\MinGW\bin;%PATH%

C:>cd /D C:\boost_1_66_0

C:\boost_1_66_0>bjam --toolset=gcc "--prefix=C:\Pliki programów (x86)\CodeBlocks" install
C:/boost_1_66_0/tools/build/src/tools/types\adoc.jam in load
rule Copyright unknown in module adoc.
C:\boost_1_66_0\tools\build\src/kernel\modules.jam in import
C:/boost_1_66_0/tools/build/src/tools/types\register.jam in load
C:\boost_1_66_0\tools\build\src/kernel\modules.jam in import
C:/boost_1_66_0/tools/build/src/tools\stage.jam in load
C:\boost_1_66_0\tools\build\src/kernel\modules.jam in import
C:/boost_1_66_0/tools/build/src/tools\builtin.jam in load
C:\boost_1_66_0\tools\build\src/kernel\modules.jam in import
C:/boost_1_66_0/tools/build/src\build-system.jam in load
C:\boost_1_66_0\tools\build\src/kernel\modules.jam in import
C:\boost_1_66_0\tools\build\src\kernel\bootstrap.jam in boost-build
C:\boost_1_66_0\boost-build.jam in module scope

C:\boost_1_66_0>

Proces miał trwać od 5 do 20 min, a nie kilka sekund i nie powstał żaden katalog w CodeBlocks.
Co robię źle ?

0

Jeśli to wszystkie logi, jakie masz z tego procesu, to jedyne co zwraca uwagę to:

C:/boost_1_66_0/tools/build/src/tools/types\adoc.jam:2: in load rule Copyright unknown in module adoc.

Wygląda to tak, jakby któryś fragment interpretowany był jako reguła/polecenie a nie jako tekst. Nie pamiętam dokładnie już instalacji boost'a - masz możliwość podglądnąć ten plik: adoc.jam?
Bardzo możliwe, że wspomniane Copyright są traktowane jako reguła, której rzecz jasna nie da się wykonać.

0

Link który podałeś nie działa ale sprawdź sobie na stronie boost
http://www.boost.org/doc/libs/1_55_0/more/getting_started/windows.html

Jeśli chcesz mieć jak najłatwiejsze wrzucanie do systemu takich bibliotek jak boost a nie za bardzo wiesz co i jak zainstaluj sobie linuksa. Tam się boost itd. instaluje z repozytoriów i już są(chociaż wiadomo trzeba je czasami dodać do projektu),

0

Poprawiłem już link i działa :)

masz możliwość podglądnąć ten plik: adoc.jam?

#|
Copyright 2017 Rene Rivera
Distributed under the Boost Software License, Version 1.0. (See
accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
|#

import scanner ;
import type ;

type ASCIIDOC : adoc asciidoc ;

class asciidoc-scanner : common-scanner
{
    rule pattern ( )
    {
        return
            "include::([^[]+)"
            "image::([^[]+)"
            "image:([^[]+)"
        ;
    }
}

scanner.register asciidoc-scanner : include ;
type.set-scanner ASCIIDOC : asciidoc-scanner ;

Link który podałeś nie działa ale sprawdź sobie na stronie boost >
http://www.boost.org/doc/libs/1_55_0/more/getting_started/windows.html

Widziałem to, ale jako nowicjusz jeden nic z tego nie kumam.Kumam ze swojego linka http://wiki.codeblocks.org​/index.php/BoostWindowsQuickRef tutaj jest konfiguracja dla CodeBlocks nie dla MSVC.Ale nie wiem co robię źle że nie działa.

Jeśli chcesz mieć jak najłatwiejsze wrzucanie do systemu takich bibliotek jak boost a nie za bardzo wiesz co i jak zainstaluj sobie linuksa. Tam się boost itd. instaluje z repozytoriów i już są(chociaż wiadomo trzeba je czasami dodać do projektu),

Wiem, że linux to taki darmowy Windows, ale mam legalnego Windowsa 10 no i pakiet Office no i jeszcze Antyvirus i gry, a to wszystko kosztowało, więc przesiadka na linux odpada.

Może ktoś instalował boost dla Codeblocks i mi pomoże ?

1

Bjam nie rozumie komentarza blokowego. Skąd go w ogóle masz? Poprawnie skompilowana binarka która odpali Ci boost build powinna nazywać się b2. Bjam swoje życie skończył jakoś przed wersją 1.50.

0

Bjam nie rozumie komentarza blokowego. Skąd go w ogóle masz?

Zassałem z neta z tego co pamiętam to było cosik potrzebne do kompilacji boost.

Poprawnie skompilowana binarka która odpali Ci boost build powinna nazywać się b2.

A w którym katalogu ją znajdę ?

Bjam swoje życie skończył jakoś przed wersją 1.50.

To dziwne bo ja mam wersję 3.1.18.1

0

nie znam codeblocks ale krótko jeśli jesteś aż takim nowicjuszem.

i inne filmy na youtube pod hasłem codeblocks boost windows.

Wiem, że linux to taki darmowy Windows, ale mam legalnego Windowsa 10 no i pakiet Office no i jeszcze Antyvirus i gry, a to wszystko kosztowało, więc przesiadka na linux odpada.

I? Ja też mam windows a linuksa też. Wszystko na jednym komputerze w ramach dualboot. A jak sobie chcesz to możesz odpalić maszynę wirtualną z linuksem(za pomocą virtualbox).

0
znyk napisał(a):

Bjam nie rozumie komentarza blokowego. Skąd go w ogóle masz?

Zassałem z neta z tego co pamiętam to było cosik potrzebne do kompilacji boost.

No to wszystko jasne, używasz niekompatylnej binarki do budowania boost'a. Bjam i b2 to narzędzia kompilowane z tego samego repozytorium boost'a które chcesz zainstalować.

Poprawnie skompilowana binarka która odpali Ci boost build powinna nazywać się b2.

A w którym katalogu ją znajdę ?

W głównym. Tylko, że trzeba ją najpierw skompilować i jest do tego skrypt zwany bootstrap. Wszystko jest w dokumentacji boost'a. Jeżeli skrypt wyprodukuje Ci b2 i bjam to używasz b2.

Czyli podsumowując, rozwiązaniem Twojego problemu powinno być wywołanie bootsratp.bat z konsoli, a potem użycie b2 zamiast bjam w instrukcji instalacji do CodeBlocks.

Bjam swoje życie skończył jakoś przed wersją 1.50.

To dziwne bo ja mam wersję 3.1.18.1

Chodziło o wersję boost'a.

0

Czyli podsumowując, rozwiązaniem Twojego problemu powinno być wywołanie bootsratp.bat z konsoli, a potem użycie b2 zamiast bjam w instrukcji instalacji do CodeBlocks.

Zrobiłem według filmu:

,

ale nie wygenerował mi się plik b2, tylko coś poszło nie tak i otrzymałem:

C:\Users\Marcin Rażyński>cd C:\boost_1_66_0

C:\boost_1_66_0>bootstrap.bat gcc
Building Boost.Build engine
execnt.c: In function 'try_wait_callback':
execnt.c:833:5: warning: implicit declaration of function 'UnregisterWait' [-Wimplicit-function-declaration]
     UnregisterWait( slot->wait_handle );
     ^
execnt.c: In function 'register_wait':
execnt.c:853:9: warning: implicit declaration of function 'RegisterWaitForSingleObject' [-Wimplicit-function-declaration]
         RegisterWaitForSingleObject( &cmdtab[ job_id ].wait_handle,
         ^
C:\Users\Marcin Ra┐y˝ski\AppData\Local\Temp\ccIUmUna.o:execnt.c:(.text+0x1243): undefined reference to `UnregisterWait'
C:\Users\Marcin Ra┐y˝ski\AppData\Local\Temp\ccIUmUna.o:execnt.c:(.text+0x130b): undefined reference to `RegisterWaitForSingleObject'
collect2.exe: error: ld returned 1 exit status

Failed to build Boost.Build engine.
Please consult bootstrap.log for further diagnostics.

You can try to obtain a prebuilt binary from

   http://sf.net/project/showfiles.php?group_id=7586&package_id=72941

Also, you can file an issue at http://svn.boost.org
Please attach bootstrap.log in that case.

C:\boost_1_66_0>

Czy muszę pobrać starszą bibliotekę jak na filmie boost_1_63_0 , a czy ktoś wie jak skompilować boost_1_66_0 ?

Z wersją boost_1_63_0 też mam dymy:

C:\Users\Marcin Rażyński>cd C:\boost_1_63_0

C:\boost_1_63_0>bootstrap.bat gcc
Building Boost.Build engine
execcmd.c: In function 'onintr':
execcmd.c:120:5: warning: implicit declaration of function 'out_printf' [-Wimplicit-function-declaration]
     out_printf( "...interrupted\n" );
     ^
execnt.c: In function 'maxline':
execnt.c:524:12: warning: type defaults to 'int' in declaration of 'result' [-Wimplicit-int]
     static result;
            ^
filent.c: In function 'file_archscan':
filent.c:358:10: warning: implicit declaration of function 'filelist_empty' [-Wimplicit-function-declaration]
     if ( filelist_empty( archive->members ) )
          ^
filent.c:360:14: warning: implicit declaration of function 'file_collect_archive_content_' [-Wimplicit-function-declaration]
         if ( file_collect_archive_content_( archive ) < 0 )
              ^
make.c: In function 'make':
make.c:132:13: warning: implicit declaration of function 'out_printf' [-Wimplicit-function-declaration]
             out_printf( "...found %d target%s...\n", counts->targets,
             ^
make.c: In function 'make0':
make.c:735:13: warning: implicit declaration of function 'out_flush' [-Wimplicit-function-declaration]
             out_flush();
             ^
filesys.c: In function 'file_archivescan_impl':
filesys.c:360:10: warning: implicit declaration of function 'filelist_empty' [-Wimplicit-function-declaration]
     if ( filelist_empty( archive->members ) )
          ^
modules/path.c: In function 'path_exists':
modules/path.c:16:12: warning: implicit declaration of function 'file_query' [-Wimplicit-function-declaration]
     return file_query( list_front( lol_get( frame->args, 0 ) ) ) ?
            ^

Failed to build Boost.Build engine.
Please consult bootstrap.log for further diagnostics.

You can try to obtain a prebuilt binary from

   http://sf.net/project/showfiles.php?group_id=7586&package_id=72941

Also, you can file an issue at http://svn.boost.org
Please attach bootstrap.log in that case.

C:\boost_1_63_0>
0

ehhh
jak ja kojarzę chyba są jakieś prebuildy boosta dla windowsa i na sf widzę nawet coś jest
https://sourceforge.net/projects/boost/files/boost-binaries/1.66.0/

0

Skompiluj b2 z użyciem msvc, czyli do bootsrapa nie przekazuj żadnych parametrów. Dopiero w drugim korku, gdy budujesz samego boost'a użyj gcc.

0

revcorey -> właśnie ztąd pobrałem.

Skompiluj b2 z użyciem msvc, czyli do bootsrapa nie przekazuj żadnych parametrów.

Hmm, czyli co mam zrobić, jakie komendy wydać ?

wcześniej instalowałowałem korzystając z boost-jam-3.1.18
czy ten skrypt dodawał gdzieś jakieś aliasy ? Może przez to się skopsało ?

0

Zainstalowałem sobie MSYS2 i już nie mam żadnych problemów z linkowaniem dll.

0

Zainstalowałem debiana i później g++ i boost.Zainstalowałem też Codeblocks. Ale jak robię przykładowy program się wykłada:

#include <boost/thread/thread.hpp>
#include <iostream>
using namespace std;

void hello_world()
{
  cout << "Witaj świecie, jestem wątkiem!" << endl;
}

int main(int argc, char* argv[])
{
  // utwórz nowy wątek wywołujący funkcję "hello_world"
  boost::thread my_thread(&hello_world);
  // poczekaj na zakończenie wątku
  my_thread.join();

  return 0;
}
0

Co to znaczy, że się wykłada? Nie kompiluje się? Do instalacji Boosta na Ubuntu/Debianie służy: sudo apt install libboost-all-dev
apt install libboost-dev instaluje tylko nagłówki.
Dodatkowo jak używasz code blocksa to musisz mu dokładnie powiedzieć jakie liby ma zlinkować.

0

no jakiś problem z kompilacją i uruchmieniem.

Dodatkowo jak używasz code blocksa to musisz mu dokładnie powiedzieć jakie liby ma zlinkować.

A jak to zrobić w Debianie ?

0

no jakiś problem z kompilacją i uruchmieniem.

Nie musiałeś być aż tak dokładny.

A jak to zrobić w Debianie ?

W code blocks prawym przyciskiem myszy na nazwę projektu -> Build options -> Linker settings -> Add i tutaj podajesz biblioteki które chcesz zlinkować. W twoim przypadku, jeśli chcesz użyć threadów (chociaż nie rozumiem po co skoro C++11 ma je w std) dodajesz boost_thread i boost_system

1 użytkowników online, w tym zalogowanych: 0, gości: 1