InglesPransesEspanyol

OnWorks favicon

abicompat - Online sa Cloud

Patakbuhin ang abicompat sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command na abicompat na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


abicompat - suriin ang pagiging tugma ng ABI

sinusuri ng abicompat na ang isang application na nagli-link laban sa isang naibahaging library ay nananatili pa rin
ABI compatible sa isang kasunod na bersyon ng library na iyon. Kung ang bagong bersyon ng
Ang library ay nagpapakilala ng isang hindi pagkakatugma ng ABI, pagkatapos ay ipinahihiwatig ng abicompat sa user kung ano ang eksaktong
ang hindi pagkakatugma ay.

INVOKASYON


abicompat [mga opsyon] [ ]

Opsyon


· - Tumulong

Magpakita ng maikling tulong tungkol sa command at exit.

· --bersyon | -v

Ipakita ang bersyon ng programa at lumabas.

· --list-undefined-symbols | -u

Ipakita ang listahan ng mga hindi natukoy na simbolo ng application at lumabas.

· --show-base-mga pangalan | -b

Sa resultang ulat na inilabas ng tool, ginagawa ng opsyong ito ang application at
ang mga aklatan ay tinutukoy lamang ng kanilang mga baseng pangalan; hindi sa buong ganap na pangalan. Ito
maaaring maging kapaki-pakinabang para sa paggamit sa mga script na gustong ihambing ang mga pangalan ng application at
mga aklatan nang hiwalay sa kung ano ang mga pangalan ng kanilang direktoryo.

· --app-debug-info-dir

Itakda ang path sa direktoryo kung saan naroon ang impormasyon sa pag-debug ng application
dapat inilatag. Ito ay kapaki-pakinabang para sa mga binary ng application kung saan ang pag-debug
ang impormasyon ay nasa isang hiwalay na hanay ng mga file.

· --lib-debug-info-dir1

Itakda ang path sa direktoryo kung saan ang impormasyon sa pag-debug ng unang bersyon
ng shared library ay dapat na inilatag. Ito ay kapaki-pakinabang para sa shared library
binary kung saan ang impormasyon sa pag-debug ay nasa isang hiwalay na hanay ng mga file.

· --lib-debug-info-dir2

Itakda ang path sa direktoryo kung saan ang impormasyon sa pag-debug ng pangalawang bersyon
ng shared library ay dapat na inilatag. Ito ay kapaki-pakinabang para sa shared library
binary kung saan ang impormasyon sa pag-debug ay nasa isang hiwalay na hanay ng mga file.

· --no-show-locs
Huwag magpakita ng impormasyon tungkol sa kung saan sa pangalawa Nagbahagi aklatan ang kani-kanilang
binago ang uri.

· --mahina-mode

Nag-trigger ito ng mahinang mode ng abicompat. Sa mode na ito, isang bersyon lamang ng
kailangan ang library. Ibig sabihin, ang abicompat ay hinihingi ng ganito:

abicompat --weak-mode

Tandaan na ang --mahina-mode ang opsyon ay maaari pang tanggalin kung isang bersyon lamang ng
library ay ibinigay, kasama ang application; sa kasong iyon, abicompat awtomatikong
switch para gumana sa mahinang mode:

abicompat

Sa mahinang mode na ito, ang mga uri ng mga function at variable na na-export ng library at
natupok ng application (tulad ng sa, ang mga simbolo ng mga function at variable na ito
ay hindi natukoy sa application at tinukoy at na-export ng library) ay
kumpara sa bersyon ng mga ganitong uri gaya ng inaasahan ng application. At kung ang mga ito
magkaiba ang dalawang bersyon ng mga uri, abicompat nagsasabi sa gumagamit kung ano ang mga pagkakaiba
ay.

Sa madaling salita, sa mode na ito, abicompat sinusuri na ang mga uri ng mga function at
mga variable na na-export ng library ay pareho ang ibig sabihin ng kung ano ang application
inaasahan, hangga't ang ABI ay nababahala.

Tandaan na sa mode na ito, abicompat ay hindi nakakakita ng mga na-export na function o variable
(mga simbolo) na inaasahan ng application ngunit inalis sa library.
Kaya naman ito tinawag mahina mode.

RETURN Mga halaga


Ang exit code ng abicompat Ang command ay alinman sa 0 kung ang ABI ng binaries ay
ang inihambing ay pantay, o hindi zero kung magkaiba ang mga ito o kung ang tool ay nagkaroon ng error.

Sa susunod na kaso, ang exit code ay isang 8-bits-wide bit field kung saan ang bawat bit ay may a
tiyak na kahulugan.

Ang unang bit, ng halaga 1, ay pinangalanan ABIDIFF_ERROR ibig sabihin nagkaroon ng error.

Ang pangalawang bit, ng halaga 2, ay pinangalanan ABIDIFF_USAGE_ERROR ibig sabihin may error sa daan
tinawag ng user ang tool. Maaaring itakda ito, halimbawa, kung ginamit ng user ang tool
na may hindi kilalang command line switch, na may maling numero o argumento, atbp. Kung ang bit na ito ay
itakda, pagkatapos ay ang ABIDIFF_ERROR bit ay dapat na itakda rin.

Ang ikatlong bit, ng halaga 4, pinangalanan ABIDIFF_ABI_CHANGE ibig sabihin ang ABI ng binary being
magkaiba ang pinaghahambing.

Ang ikaapat na bit, na may halagang 8, ay pinangalanan ABIDIFF_ABI_INCOMPATIBLE_CHANGE ibig sabihin ang ABI ng
Ang mga binary na inihambing ay naiiba sa isang hindi tugmang paraan. Kung nakatakda ang bit na ito, ang
ABIDIFF_ABI_CHANGE bit ay dapat na itakda rin. Kung ang ABIDIFF_ABI_CHANGE ay nakatakda at ang
ABIDIFF_INCOMPATIBLE_CHANGE is HINDI set, ibig sabihin, ang mga ABI na inihahambing ay maaaring
o maaaring hindi tugma. Sa kasong iyon, kailangang suriin ng isang tao ang mga pagbabago sa ABI
upang magpasya kung sila ay magkatugma o hindi.

Ang natitirang mga piraso ay hindi ginagamit para sa sandaling ito.

PAGGAMIT HALIMBAWA


· Pag-detect ng posibleng hindi pagkakatugma ng ABI sa isang bagong bersyon ng shared library:

$ pusa -n pagsubok0.h
1 struct foo
2 {
3 int m0;
4
5 foo()
6 : m0()
7 {}
8 };
9
10 foo*
11 first_func();
12
13 walang bisa
14 segundo_func(foo&);
15
16 walang bisa
17 third_func();
$

$ cat -n test-app.cc
1 // Compile gamit ang:
2 // g++ -g -Wall -o test-app -L. -ltest-0 test-app.cc
3
4 #include "test0.h"
5
6 int
7 pangunahing()
8 {
9 foo* f = first_func();
10 segundo_func(*f);
11 bumalik 0;
12}
$

$ cat -n test0.cc
1 // I-compile ito gamit ang:
2 // g++ -g -Wall -shared -o libtest-0.so test0.cc
3
4 #include "test0.h"
5
6 foo*
7 first_func()
8 {
9 foo* f = bagong foo();
10 bumalik f;
11}
12
13 walang bisa
14 segundo_func(foo&)
15 {
16}
17
18 walang bisa
19 third_func()
20 {
21}
$

$ pusa -n pagsubok1.h
1 struct foo
2 {
3 int m0;
4 char m1; /* <-- may nadagdag na bagong miyembro dito! */
5
6 foo()
7: m0(),
8 m1()
9 {}
10 };
11
12 foo*
13 first_func();
14
15 walang bisa
16 segundo_func(foo&);
17
18 walang bisa
19 third_func();
$

$ cat -n test1.cc
1 // I-compile ito gamit ang:
2 // g++ -g -Wall -shared -o libtest-1.so test1.cc
3
4 #include "test1.h"
5
6 foo*
7 first_func()
8 {
9 foo* f = bagong foo();
10 bumalik f;
11}
12
13 walang bisa
14 segundo_func(foo&)
15 {
16}
17
18 /* Magkomento tayo sa kahulugan ng third_func()
19 walang bisa
20 third_func()
21 {
22}
23 */
$

· I-compile ang una at pangalawang bersyon ng mga aklatan: libtest-0.so at
libtest-1.so:

$ g++ -g -Wall -shared -o libtest-0.so test0.cc
$ g++ -g -Wall -shared -o libtest-1.so test1.cc

· I-compile ang application at i-link ito laban sa unang bersyon ng library,
paglikha ng pagsubok-app binary:

$ g++ -g -Wall -o test-app -L. -ltest-0.so test-app.cc

· Ngayon, gamitin abicompat upang makita kung ang libtest-1.so ay tugma sa ABI sa app, nang may paggalang
sa ABI ng libtest-0.so:

$ abicompat test-app libtest-0.so libtest-1.so
Ang ELF file na 'test-app' ay maaaring hindi ABI compatible sa 'libtest-1.so' dahil sa mga pagkakaiba sa 'libtest-0.so' sa ibaba:
Buod ng mga pagbabago sa mga function: 0 Inalis, 2 Binago, 0 Idinagdag na mga function
Buod ng pagbabago ng mga variable: 0 Inalis, 0 Binago, 0 Idinagdag na variable

2 function na may ilang hindi direktang sub-type na pagbabago:

[C]'function foo* first_func()' ay may ilang hindi direktang sub-type na pagbabago:
binago ang uri ng pagbabalik:
sa itinuro upang i-type ang 'struct foo':
nagbago ang laki mula 32 hanggang 64 bits
1 paglalagay ng miyembro ng data:
'char foo::m1', sa offset 32 ​​(sa bits)
[C]'function void second_func(foo&)' ay may ilang hindi direktang sub-type na pagbabago:
Ang parameter 0 ng uri na 'foo&' ay may mga sub-type na pagbabago:
binago ang uri ng reference na 'struct foo', gaya ng iniulat kanina

$

· Ngayon gamitin ang mahinang mode ng abicompat, iyon ay, pagbibigay lamang ng application at ang
bagong bersyon ng library:

$ abicompat --weak-mode test-app libtest-1.so
mga function na tinukoy sa library
'libtest-1.so'
may mga sub-type na iba sa kung anong application
'test-app'
inaasahan:

function foo* first_func():
binago ang uri ng pagbabalik:
sa itinuro upang i-type ang 'struct foo':
nagbago ang laki mula 32 hanggang 64 bits
1 paglalagay ng miyembro ng data:
'char foo::m1', sa offset 32 ​​(sa bits)

$

Gumamit ng abicompat online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

  • 1
    Tagapamahala ng PAC
    Tagapamahala ng PAC
    Ang PAC ay isang Perl/GTK na kapalit para sa
    SecureCRT/Putty/etc (linux
    ssh/telnet/... gui)... Nagbibigay ito ng GUI
    upang i-configure ang mga koneksyon: mga user,
    mga password, EXPECT na regulasyon...
    I-download ang PAC Manager
  • 2
    GeoServer
    GeoServer
    Ang GeoServer ay isang open-source na software
    server na nakasulat sa Java na nagpapahintulot sa mga user
    upang ibahagi at i-edit ang geospatial na data.
    Idinisenyo para sa interoperability, ito
    naglalathala ng...
    I-download ang GeoServer
  • 3
    Alitaptap III
    Alitaptap III
    Isang libre at open-source na personal na pananalapi
    manager. Mga tampok ng Alitaptap III a
    double-entry bookkeeping system. Kaya mo
    mabilis na pumasok at ayusin ang iyong
    mga transaksyon i...
    I-download ang Alitaptap III
  • 4
    Mga Extension ng Apache OpenOffice
    Mga Extension ng Apache OpenOffice
    Ang opisyal na katalogo ng Apache
    Mga extension ng OpenOffice. Mahahanap mo
    mga extension mula sa mga diksyunaryo hanggang
    mga tool para mag-import ng mga PDF file at para kumonekta
    may ext...
    I-download ang Apache OpenOffice Extension
  • 5
    MantisBT
    MantisBT
    Ang Mantis ay isang madaling ma-deploy, web
    nakabatay sa bugtracker upang tulungan ang bug ng produkto
    pagsubaybay. Nangangailangan ito ng PHP, MySQL at a
    web server. Tingnan ang aming demo at naka-host
    nag-aalok...
    I-download ang MantisBT
  • 6
    LAN Messenger
    LAN Messenger
    Ang LAN Messenger ay isang p2p chat application
    para sa intranet na komunikasyon at hindi
    nangangailangan ng isang server. Isang iba't ibang mga madaling gamiting
    mga tampok ay suportado kasama ang
    abiso...
    I-download ang LAN Messenger
  • Marami pa »

Linux command

  • 1
    abidw
    abidw
    abidw - i-serialize ang ABI ng isang ELF
    Ang file na abidw ay nagbabasa ng isang nakabahaging aklatan sa ELF
    format at naglalabas ng representasyong XML
    ng ABI nito sa karaniwang output. Ang
    pinalabas...
    Takbo ng abidw
  • 2
    abilint
    abilint
    abilint - patunayan ang isang abigail ABI
    representasyon abilint parses the native
    XML na representasyon ng isang ABI bilang inilabas
    ni abidw. Kapag na-parse na nito ang XML
    kumatawan...
    Tumakbo abilint
  • 3
    coresendmsg
    coresendmsg
    coresendmsg - magpadala ng mensahe ng CORE API
    sa core-daemon na daemon ...
    Patakbuhin ang coresendmsg
  • 4
    core_server
    core_server
    core_server - Ang pangunahing server para sa
    SpamBayes. DESCRIPTION: Kasalukuyang nagsisilbi
    ang web interface lamang. Naka-plug in
    Ang mga tagapakinig para sa iba't ibang mga protocol ay TBD.
    Ito ...
    Patakbuhin ang core_server
  • 5
    fwflash
    fwflash
    fwflash - programa upang mag-flash ng file ng imahe
    sa isang konektadong NXT device...
    Patakbuhin ang fwflash
  • 6
    fwts-collect
    fwts-collect
    fwts-collect - mangolekta ng mga log para sa fwts
    pag-uulat ng bug. ...
    Patakbuhin ang fwts-collect
  • Marami pa »

Ad