Ubuntu Online, Fedora Online, Windows online emulator അല്ലെങ്കിൽ MAC OS ഓൺലൈൻ എമുലേറ്റർ എന്നിങ്ങനെയുള്ള ഞങ്ങളുടെ ഒന്നിലധികം സൗജന്യ ഓൺലൈൻ വർക്ക്സ്റ്റേഷനുകളിലൊന്ന് ഉപയോഗിച്ച് OnWorks സൗജന്യ ഹോസ്റ്റിംഗ് ദാതാവിൽ പ്രവർത്തിപ്പിക്കാവുന്ന കമാൻഡ് icheck ആണിത്.
പട്ടിക:
NAME
icheck - C ഇന്റർഫേസ് ABI/API ചെക്കർ
സിനോപ്സിസ്
ചെക്ക് --കാനോനിഫൈ ചെയ്യുക [[--അടിസ്ഥാനം FILE] ...] [ഓപ്ഷനുകൾ] [GCC_OPTIONS] [--] ഫയലുകൾ
ചെക്ക് --താരതമ്യം ചെയ്യുക [ഓപ്ഷനുകൾ] പഴയ_ഫയൽ new_file
വിവരണം
API, ABI മാറ്റങ്ങൾക്കായി C ഇന്റർഫേസുകൾ സ്ഥിരമായി പരിശോധിക്കുന്നതിനുള്ള ഒരു ഉപകരണം. ടൈപ്പിലെ എല്ലാ മാറ്റങ്ങളും
മിക്ക API മാറ്റങ്ങളോടൊപ്പം ABI മാറ്റങ്ങൾക്ക് കാരണമാകുന്ന പ്രഖ്യാപനങ്ങൾ കണ്ടെത്തണം.
എബിഐ ഡ്രിഫ്റ്റ് തടയുന്നതിനുള്ള ഒരു രീതിയായി icheck ലൈബ്രറികളിൽ ഉപയോഗിക്കാൻ ഉദ്ദേശിച്ചുള്ളതാണ്.
കമാൻഡുകൾ
--canonify ഉപയോഗിച്ച് ഒരു കാനോനിക്കൽ ഇന്റർഫേസ് ഫയലിലേക്ക് ഒരു കൂട്ടം ഉറവിട ഫയലുകൾ കുറയ്ക്കുക, തുടർന്ന് താരതമ്യം ചെയ്യുക
അത്തരത്തിലുള്ള രണ്ട് ഇന്റർഫേസ് ഫയലുകൾ --compare. അവയ്ക്കിടയിൽ ഇന്റർഫേസ് മാറ്റങ്ങളുണ്ടെങ്കിൽ,
icheck മാറ്റങ്ങൾ വിവരിക്കുകയും പരാജയപ്പെടുകയും ചെയ്യും.
--കാനോനിഫൈ ചെയ്യുക [[--അടിസ്ഥാനം FILE] ...] [ഓപ്ഷനുകൾ] [GCC_OPTIONS] [--] ഫയലുകൾ
പിന്നീട് താരതമ്യം ചെയ്യേണ്ട സോഴ്സ് കോഡ് ഫയലുകൾ (സാധാരണയായി .h ഹെഡറുകൾ) കാനോനിഫൈ ചെയ്യുക
--താരതമ്യം ചെയ്യുക. കൂടെ സാധാരണയായി ഉപയോഗിക്കുന്നു -o ഒരു ഫയലിലേക്ക് സംഗ്രഹം സംരക്ഷിക്കുന്നതിനുള്ള ഓപ്ഷൻ.
--താരതമ്യം ചെയ്യുക [ഓപ്ഷനുകൾ] പഴയ_ഫയൽ new_file
ഉപയോഗിച്ച് സൃഷ്ടിച്ച രണ്ട് കാനോനിക്കൽ ഇന്റർഫേസ് ഫയലുകൾ വായിക്കുന്നു --കാനോനിഫൈ ചെയ്യുക താരതമ്യം ചെയ്യുന്നു
ആപ്ലിക്കേഷൻ പബ്ലിക് ഇന്റർഫേസിലെ മാറ്റങ്ങളിലേക്കുള്ള സോഴ്സ് കോഡിന്റെ ഘടന
(ഡെവലപ്പർ ഇന്റർഫേസ് അല്ലെങ്കിൽ API), ആപ്ലിക്കേഷൻ ബൈനറി ഇന്റർഫേസ് (ABI) എന്നിവ ഉപയോഗിച്ചിരുന്നു
മറ്റ് പ്രോഗ്രാമുകൾ അല്ലെങ്കിൽ ലൈബ്രറികൾക്കെതിരായ ലിങ്ക്.
ഓപ്ഷനുകൾ
ICHECK ഓപ്ഷനുകൾ
-o, --ഔട്ട്പുട്ട് FILE
stdout-ന് പകരം FILE-ലേക്ക് ഔട്ട്പുട്ട് എമിറ്റ് ചെയ്യുക.
--ഡീബഗ് N
ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ ഉപേക്ഷിക്കുക.
--മാത്രം കാര്യം
തന്നിരിക്കുന്ന കാര്യം മാത്രം പ്രോസസ്സ് ചെയ്യുക.
--കടക്കുക-നിന്ന് FILE
അതിൽ നിന്ന് അനാവശ്യ കാര്യങ്ങൾ ഒഴിവാക്കുക FILE.
--skip-from-re regexp
സാധാരണ എക്സ്പ്രഷനുമായി പൊരുത്തപ്പെടുന്ന ഫയലുകളിൽ നിന്ന് അനാവശ്യ കാര്യങ്ങൾ ഒഴിവാക്കുക.
--മാത്രം-നിന്ന് FILE
സാധനങ്ങൾ മാത്രം എടുക്കുക FILE.
--നിന്ന്-മാത്രം regexp
റെഗുലർ എക്സ്പ്രഷനുമായി പൊരുത്തപ്പെടുന്ന ഫയലുകളിൽ നിന്ന് മാത്രം കാര്യങ്ങൾ എടുക്കുക.
GCC_OPTIONS
GCC_OPTIONS വഴി gcc -E ലേക്ക് കടന്നു
സഹായിക്കൂ ഓപ്ഷനുകൾ
--സഹായിക്കൂ
എന്നതിനായുള്ള സഹായ സംഗ്രഹം പ്രദർശിപ്പിക്കുക ചെക്ക്.
ഉദാഹരണങ്ങൾ
എല്ലാ സോഴ്സ് ഫയലുകളും gcc ഉപയോഗിച്ച് മുൻകൂട്ടി പ്രോസസ്സ് ചെയ്തിരിക്കുന്നു, അതിനാൽ കാനോനിഫൈയ്ക്ക് സമാനമായ വിവരങ്ങൾ ഉൾപ്പെടുന്നു
സോഴ്സ് കോഡായി --I ഓപ്ഷനുകൾ ഉൾപ്പെടുത്താൻ Makefile-ൽ നിന്നുള്ള വാക്യഘടന പിന്തുടരുക സിപിപി (അഥവാ
ജിസി) അതിനാൽ ആവശ്യമായ എല്ലാ തലക്കെട്ടുകളും കണ്ടെത്താനാകും. ചെക്ക് എന്തെങ്കിലും ആവശ്യമെങ്കിൽ ഗർഭച്ഛിദ്രം ചെയ്യും
തലക്കെട്ടുകൾ കണ്ടെത്താൻ കഴിയില്ല. ഉറവിടം സമാഹരിക്കാവുന്നതായിരിക്കണം; icheck ഫയലുകൾ പ്രോസസ്സ് ചെയ്യാൻ കഴിയില്ല
നേരിട്ട് സമാഹരിക്കാൻ കഴിയില്ല. ഒരു തലക്കെട്ട് നഷ്ടപ്പെട്ടാൽ #പ്രസ്താവനകൾ ഉൾപ്പെടുത്തുക, അല്ലെങ്കിൽ മറ്റെന്തെങ്കിലും
ഒരു പ്രത്യേക രീതിയിൽ ഉപയോഗിക്കേണ്ടതുണ്ട്, തുടർന്ന് ഇത് icheck ഉപയോഗിച്ച് നേരിട്ട് പ്രോസസ്സ് ചെയ്യാൻ കഴിയില്ല.
പകരം, കാര്യങ്ങൾ ഉചിതമായി സജ്ജീകരിക്കുകയും തുടർന്ന് #ഉൾക്കൊള്ളുകയും ചെയ്യുന്ന ഒരു അപൂർണ്ണ സി ഫയൽ എഴുതുക
ശീർഷകം.
ചെക്ക് --കാനോനിഫൈ ചെയ്യുക -o ~/ഇചെക്ക്/പഴയ പതിപ്പ് -I/usr/include/foo-2.0 /usr/src/bar/src/foobar.h
foobar.h ഫയലിന്റെയും അതിൽ ഉൾപ്പെടുന്ന എല്ലാ ഫയലുകളുടെയും ഒരു വാചക സംഗ്രഹം തയ്യാറാക്കുക. എന്നാണ് സംഗ്രഹം
എഴുതിയത് ~/ഇചെക്ക്/പഴയ പതിപ്പ്. വേണ്ടി ആവർത്തിക്കുക /usr/src/bar1/src/foobar.h - അതേ ഫയൽ
പുതിയ ഉറവിട ഡയറക്ടറിയിൽ, ഒരു പുതിയ ഫയലിലേക്ക് ഔട്ട്പുട്ട് ചെയ്യുന്നു, ഉദാ ~/ഇചെക്ക്/പുതിയ പതിപ്പ്.
ചെക്ക് --താരതമ്യം ചെയ്യുക -o ~/icheck/results.txt ~/ഇചെക്ക്/പഴയ പതിപ്പ് ~/ഇചെക്ക്/പുതിയ പതിപ്പ്
രണ്ട് സംഗ്രഹ ഫയലുകളുടെ താരതമ്യത്തിന്റെ റിപ്പോർട്ട് എഴുതുന്നു. റിപ്പോർട്ട് എല്ലാം സൂചിപ്പിക്കുന്നു
താരതമ്യ സമയത്ത് കണ്ടെത്തിയ എബിഐ കൂടാതെ/അല്ലെങ്കിൽ എപിഐയിലെ മാറ്റങ്ങൾ.
ചെക്ക് --കാനോനിഫൈ ചെയ്യുക -o debian/icheck.canonical -Idebian/foo-dev/usr/include debian/foo-
dev/usr/include/foobar.h
ചെക്ക് --താരതമ്യം ചെയ്യുക debian/icheck.manifest debian/icheck.canonical
ഈ രണ്ട് പ്രസ്താവനകളും, എ ഡെബിയൻ/നിയമങ്ങൾ ഫയൽ, പാക്കേജ് നിർമ്മാണത്തിന് കാരണമാകും
അപ്രതീക്ഷിതമായ രീതിയിൽ API അല്ലെങ്കിൽ ABI മാറിയിട്ടുണ്ടെങ്കിൽ പരാജയപ്പെടുക, icheck.manifest ഇതിന്റെ പകർപ്പാണ്.
പ്രതീക്ഷിക്കുന്ന ഇന്റർഫേസ്, പാക്കേജിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്.
--compare എന്നതിലേക്കുള്ള ആർഗ്യുമെന്റുകൾ മുൻകൂട്ടി പ്രോസസ്സ് ചെയ്ത സാധുവായ C ഫയലുകളാണെന്ന കാര്യം ശ്രദ്ധിക്കുക.
അതിനാൽ icheck.manifest-ൽ C പ്രീപ്രൊസസ്സർ ലോജിക് അടങ്ങിയിരിക്കാം. ഒരു പാക്കേജ് ആയിരിക്കുമ്പോൾ ഇത് ഉപയോഗപ്രദമാകും
ഹോസ്റ്റ് ആർക്കിടെക്ചറിനെ ആശ്രയിച്ച് വ്യത്യസ്ത ഇന്റർഫേസുകൾ കയറ്റുമതി ചെയ്യുന്നു. ഈ സാഹചര്യത്തിൽ, നിങ്ങൾക്ക് കഴിയില്ല
ഇന്റർഫേസ് മാറുമ്പോൾ icheck.canonical ന്റെ ഒരു പുതിയ പകർപ്പ് ഉപയോഗിച്ച് അത് മാറ്റിസ്ഥാപിക്കുക
മാനിഫെസ്റ്റ് അപ്ഡേറ്റ് ചെയ്യുക. മുഴുവൻ മാനിഫെസ്റ്റും കൈകൊണ്ട് അപ്ഡേറ്റ് ചെയ്യുന്നതിനുപകരം, കൈ വയ്ക്കുക-
ഒരു ഫയലിൽ എഴുതിയ ഇന്റർഫേസ് വിവരണങ്ങൾ (icheck.static-manifest) തുടർന്ന് ഉപയോഗിക്കുക:
ചെക്ക് --കാനോനിഫൈ ചെയ്യുക --അടിസ്ഥാനം debian/icheck.static-manifest -o debian/icheck.dynamic-
മാനിഫെസ്റ്റ്
അവസാനമായി, icheck.manifest സൃഷ്ടിക്കുക:
"icheck.static-manifest" #ഉൾപ്പെടുത്തുക
#"icheck.dynamic-manifest" ഉൾപ്പെടുത്തുക
മാനിഫെസ്റ്റിന്റെ ചില ഭാഗങ്ങൾ സ്വയമേവ കൈകൊണ്ട് അപ്ഡേറ്റ് ചെയ്യാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു
ബാക്കിയുള്ളവ സൃഷ്ടിക്കുന്നു.
ഔട്ട്പ്
icheck തരത്തെ അടിസ്ഥാനമാക്കി സാധ്യമായ എല്ലാ API അല്ലെങ്കിൽ ABI മാറ്റങ്ങളുടെയും ദൈർഘ്യമേറിയ വിവരണം സൃഷ്ടിക്കുന്നു
വിവരങ്ങൾ. ഇത് യഥാർത്ഥ പ്രോഗ്രാം കോഡ് അന്വേഷിക്കുന്നില്ല, അതിനാൽ അത് സാധ്യമാണ്
അത് കണ്ടെത്തുന്ന ചില തരത്തിലുള്ള മാറ്റങ്ങൾ യഥാർത്ഥ ABI അല്ലെങ്കിൽ API മാറ്റങ്ങളല്ല. എന്നിരുന്നാലും, ഇത് സാധാരണയായി
പ്രോഗ്രാം കോഡ് അതിനായി വ്യക്തമായി എഴുതിയിരിക്കുമ്പോൾ മാത്രമേ സംഭവിക്കുകയുള്ളൂ. സംശയമുണ്ടെങ്കിൽ, അത് ഊഹിക്കുക
മാറി.
അവസാനം, icheck മാറ്റങ്ങളുടെ ഒരു സംഗ്രഹം നൽകുന്നു. ഇവിടെയുള്ള നിർദ്ദേശങ്ങൾ ശ്രദ്ധിക്കുക
--താരതമ്യത്തിനുള്ള ആർഗ്യുമെന്റുകളുടെ ക്രമത്തെ ആശ്രയിച്ചിരിക്കുന്നു: പഴയ ഇന്റർഫേസ് ആദ്യം വരണം,
അല്ലെങ്കിൽ ദിശകൾ നേരെ മറിച്ചായിരിക്കും. വിവിധ പദങ്ങളുടെ അർത്ഥങ്ങൾ ഇങ്ങനെയാണ്
താഴെ:
എബിഐയുടെ ഒരു പതിപ്പിന് എതിരായി കാര്യങ്ങൾ സമാഹരിച്ചാൽ എബിഐ അനുയോജ്യമാകും
മറ്റൊരു പതിപ്പ് ഉപയോഗിച്ച് പ്രവർത്തിപ്പിക്കുമ്പോൾ ഇന്റർഫേസ് പ്രവർത്തിക്കും.
API-യുടെ ഒരു പതിപ്പിന് എതിരായി കാര്യങ്ങൾ സമാഹരിച്ചാൽ API അനുയോജ്യമാകും
ഇന്റർഫേസ് മറ്റൊന്നിനെതിരെ കംപൈൽ ചെയ്യാൻ കഴിയും.
മുന്നോട്ട്-അനുയോജ്യമായ
പഴയതിന് വിരുദ്ധമായി കാര്യങ്ങൾ സമാഹരിച്ചാൽ ഒരു ഇന്റർഫേസ് ഫോർവേഡ്-കമ്പാറ്റിബിൾ ആണ്
പതിപ്പ് പുതിയതിനൊപ്പം പ്രവർത്തിക്കും. ഇതാണ് പ്രധാന സവിശേഷത സോനാം
മാറ്റങ്ങൾ.
പിന്നിലേക്ക്-അനുയോജ്യമായ
പുതിയതിനെതിരെ കാര്യങ്ങൾ സമാഹരിച്ചാൽ ഒരു ഇന്റർഫേസ് പിന്നിലേക്ക്-അനുയോജ്യമാണ്
പതിപ്പ് പഴയതിനൊപ്പം പ്രവർത്തിക്കും. ഇതാണ് പ്രധാന സവിശേഷത shlibs
പതിപ്പ് മാറ്റങ്ങൾ. നിങ്ങൾ ഡെബിയൻ പാക്കേജുകൾ നിർമ്മിക്കുന്നില്ലെങ്കിൽ, ഒരുപക്ഷേ നിങ്ങൾ അങ്ങനെ ചെയ്യില്ല
പിന്നിലേക്ക് അനുയോജ്യമല്ലാത്ത മാറ്റങ്ങളെക്കുറിച്ച് ശ്രദ്ധിക്കുക.
onworks.net സേവനങ്ങൾ ഉപയോഗിച്ച് icheck ഓൺലൈനായി ഉപയോഗിക്കുക