Cargando…

Advanced C and C++ compiling /

Learning how to write C/C++ code is only the first step. To be a serious programmer, you need to understand the structure and purpose of the binary files produced by the compiler: object files, static libraries, shared libraries, and, of course, executables. Advanced C and C++ Compiling explains the...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Stevanovic, Milan (Autor)
Formato: Electrónico eBook
Idioma:Inglés
Publicado: [Berkeley, CA] : Apress, 2014.
Temas:
Acceso en línea:Texto completo (Requiere registro previo con correo institucional)

MARC

LEADER 00000cam a2200000Ii 4500
001 OR_ocn879375623
003 OCoLC
005 20231017213018.0
006 m o d
007 cr cnu|||unuuu
008 140508s2014 caua o 001 0 eng d
040 |a GW5XE  |b eng  |e rda  |e pn  |c GW5XE  |d YDXCP  |d UMI  |d COO  |d B24X7  |d DEBBG  |d IDEBK  |d DEBSZ  |d OH1  |d E7B  |d VT2  |d OCLCF  |d OCLCQ  |d LIV  |d OCLCQ  |d ESU  |d OCLCQ  |d IOG  |d N$T  |d RRP  |d N$T  |d REB  |d UUM  |d CEF  |d INT  |d U3W  |d OCLCQ  |d WYU  |d YOU  |d OCLCQ  |d UAB  |d AU@  |d UKAHL  |d LEAUB  |d DCT  |d ERF  |d UKOBU  |d LQU  |d OCLCQ  |d SNK  |d DST  |d OCLCO  |d OCL  |d OCLCQ 
019 |a 880902642  |a 884584085  |a 897578104  |a 902809054  |a 961391511  |a 966355404  |a 1005805239  |a 1048156359  |a 1058521338  |a 1066609132  |a 1067177609  |a 1086463415  |a 1097090792  |a 1103269873  |a 1110859619  |a 1112538303  |a 1113435124  |a 1126516444  |a 1129335268  |a 1140068803  |a 1152978092  |a 1160066866  |a 1162791970  |a 1192335953  |a 1240520234  |a 1295610780  |a 1300501468  |a 1303358262 
020 |a 9781430266686  |q (electronic bk.) 
020 |a 1430266686  |q (electronic bk.) 
020 |z 9781430266679 
020 |z 1430266678 
024 7 |a 10.1007/978-1-4302-6668-6  |2 doi 
024 8 |a 10.1007/978-1-4302-6 
029 1 |a AU@  |b 000053360381 
029 1 |a AU@  |b 000057231565 
029 1 |a DEBBG  |b BV042032996 
029 1 |a DEBSZ  |b 414184742 
029 1 |a GBVCP  |b 796787387 
029 1 |a NZ1  |b 15584794 
035 |a (OCoLC)879375623  |z (OCoLC)880902642  |z (OCoLC)884584085  |z (OCoLC)897578104  |z (OCoLC)902809054  |z (OCoLC)961391511  |z (OCoLC)966355404  |z (OCoLC)1005805239  |z (OCoLC)1048156359  |z (OCoLC)1058521338  |z (OCoLC)1066609132  |z (OCoLC)1067177609  |z (OCoLC)1086463415  |z (OCoLC)1097090792  |z (OCoLC)1103269873  |z (OCoLC)1110859619  |z (OCoLC)1112538303  |z (OCoLC)1113435124  |z (OCoLC)1126516444  |z (OCoLC)1129335268  |z (OCoLC)1140068803  |z (OCoLC)1152978092  |z (OCoLC)1160066866  |z (OCoLC)1162791970  |z (OCoLC)1192335953  |z (OCoLC)1240520234  |z (OCoLC)1295610780  |z (OCoLC)1300501468  |z (OCoLC)1303358262 
037 |a CL0500000442  |b Safari Books Online 
050 4 |a QA76.76.C65 
072 7 |a COM  |x 051060  |2 bisacsh 
072 7 |a COM  |x 051070  |2 bisacsh 
072 7 |a UY  |2 bicssc 
082 0 4 |a 005.4/53  |2 23 
049 |a UAMI 
100 1 |a Stevanovic, Milan,  |e author. 
245 1 0 |a Advanced C and C++ compiling /  |c Milan Stevanovic. 
246 3 |a Advanced C and C Plus Plus compiling 
264 1 |a [Berkeley, CA] :  |b Apress,  |c 2014. 
264 2 |a New York, NY :  |b Distributed to the Book trade worldwide by Springer,  |c [2014] 
264 4 |c ©2014 
300 |a 1 online resource (xviii, 307 pages) :  |b illustrations 
336 |a text  |b txt  |2 rdacontent 
337 |a computer  |b c  |2 rdamedia 
338 |a online resource  |b cr  |2 rdacarrier 
347 |a text file 
347 |b PDF 
588 0 |a Online resource; title from PDF title page (EBSCO, viewed November 30, 2017). 
500 |a Includes index. 
520 |a Learning how to write C/C++ code is only the first step. To be a serious programmer, you need to understand the structure and purpose of the binary files produced by the compiler: object files, static libraries, shared libraries, and, of course, executables. Advanced C and C++ Compiling explains the build process in detail and shows how to integrate code from other developers in the form of deployed libraries as well as how to resolve issues and potential mismatches between your own and external code trees. With the proliferation of open source, understanding these issues is increasingly the responsibility of the individual programmer. Advanced C and C++ Compiling brings all of the information needed to move from intermediate to expert programmer together in one place -- an engineering guide on the topic of C/C++ binaries to help you get the most accurate and pertinent information in the quickest possible time. 
505 0 |a Ch. 1 Multitasking OS Basics -- Useful Abstractions -- Memory Hierarchy and Caching Strategy -- Virtual Memory -- Virtual Addressing -- Process Memory Division Scheme -- The Roles of Binaries, Compiler, Linker, and Loader -- Summary -- ch. 2 Simple Program Lifetime Stages -- Initial Assumptions -- Code Writing -- Concept illustration: Demo Project -- Compiling -- Introductory Definitions -- Related Definitions -- The Stages of Compiling -- Object File Properties -- Compilation Process Limitations -- Linking -- Linking Stages -- Linker's Viewpoint -- Executable File Properties -- Variety of Section Types -- A Variety of Symbol Types -- ch. 3 Program Execution Stages -- Importance of the Shell -- Kernel Role -- Loader Role -- Loader-Specific View of a Binary Film (Sections vs. Segments) -- Program Loading Stage -- Executing Program Entry Point -- The Loader Finds the Entry Point -- The Role of _start() Function. 
505 0 |a The Role of_libc_start_main() Function -- Stack and Calling Conventions -- ch. 4 The Impact of Reusing Concept -- Static Libraries -- Dynamic Libraries -- Dynamic vs. Shared Libraries -- Dynamic Linking in More Detail -- Peculiarities of Dynamic Linking on Windows -- Unique Nature of Dynamic Library -- Application Binary Interface (ABI) -- Static vs. Dynamic Libraries Comparison Points -- Differences in Import Selectiveness Criteria -- Deployment Dilemma Scenarios -- Useful Comparison Analogies -- The Conclusion: The Impact of Binary Reuse Concept -- ch. 5 Working with Static Libraries -- Creating Static Library -- Creating Linux Static Library -- Creating a Windows Static Library -- Using the Static Library -- Recommended Use Case Scenarios -- Static Libraries Tips and Tricks -- Potential for Losing the Symbol Visibility and Uniqueness -- Counterindicated Use Case Scenarios -- Specific Rules of Linking Static Libraries. 
505 0 |a Converting Static to Dynamic Library -- Static Libraries Issues on 64-bit Linux -- ch. 6 Designing Dynamic Libraries: Basics -- Creating the Dynamic Library -- Creating the Dynamic Library in Linux -- Creating the Dynamic Library in Windows -- Designing Dynamic Libraries -- Designing the Binary Interface -- Designing the Application Binary Interface -- Controlling Dynamic Library Symbols' Visibility -- Linking Completion Requirements -- Dynamic Linking Modes -- Statically Aware (Load-Time) Dynamic Linking -- Runtime Dynamic Linking -- Dynamic Linking Modes Comparison -- ch. 7 Locating the Libraries -- Typical Library Use Case Scenarios -- Development Use Case Scenario -- End User Runtime Use Case Scenario -- Build Time Library Location Rules -- Linux Build Time Library Location Rules -- Windows Build Time Library Location Rules -- Runtime Dynamic Library Location Rules -- Linux Runtime Dynamic Library Location Rules. 
505 0 |a Windows Runtime Dynamic Library Location Rules -- Linux Demo of Build Time and Runtime Conventions -- ch. 8 Designing Dynamic Libraries: Advanced Topics -- Why Resolved Memory Addresses Are a Must -- General Problem of Resolving References -- Which Symbols Are Likely to Suffer from Address Translation? -- Problems Caused by Address Translation -- Scenario 1 Client Binary Needs to Know the Address of Dynamic Library Symbols -- Scenario 2 Loaded Library No Longer Knows the Addresses of Its Own Symbols -- Linker-Loader Coordination -- Overall Strategy -- Tactics -- Linker Directives Overview -- Linker-Loader Coordination Implementation Techniques -- Load Time Relocation (LTR) -- Position Independent Code (PIC) -- ch. 9 Handling Duplicate Symbols When Linking In Dynamic Libraries -- Duplicate Symbols Definition -- Typical Duplicate Symbols Scenarios -- Duplicate Symbols Default Handling -- Duplicate Local Symbols Are Allowed. 
505 0 |a Duplicate Symbols Handling When Linking in Dynamic Libraries -- General Strategies of Eliminating Duplicate Symbols Problems -- Linker's Criteria in the Approximate Algorithm of Resolving Dynamic Libraries' Duplicate Symbols -- Analyses of Specific Duplicate Names Cases -- Case 1 Client Binary Symbol Collides with Dynamic Library ABI Function -- Case 2 ABI Symbols of Different Dynamic Libraries Collide -- Case 3 Dynamic Library ABI Symbol Collides with Another Dynamic Library Local Symbol -- Case 4 Dynamic Library Non-exported Symbol Collides with Another Dynamic Library Non-exported Symbol -- Final Remark: Linking Does Not Provide Any Kind of Namespace Inheritance -- ch. 10 Dynamic Libraries Versioning -- Gradation of Versions and their Impact on Backwards Compatibility -- Major Version Code Changes -- Minor Version Code Changes -- Patch Version -- Linux Dynamic Library Versioning Schemes -- Linux Soname-based Versioning Scheme. 
505 0 |a Linux Symbol Versioning Scheme -- Windows Dynamic Libraries Versioning -- DLL Version Information -- Specifying DLL Version Information -- Querying and Retrieving DLL Version Information -- ch. 11 Dynamic Libraries: Miscellaneous Topics -- Plug-in Concept -- Rules of Exporting -- Popular Plug-in Architectures -- Tips and Tricks -- Practical Implications of Working with Dynamic Libraries -- Miscellaneous Tips -- ch. 12 Linux Toolbox -- Quick Insight Tools -- file Utility Program -- size Utility Program -- Detailed Analysis Tools -- Idd -- nm -- objdump -- readelf -- Deployment Phase Tools -- chrpath -- patchelf -- strip -- Idconfig -- Runtime Analysis Tools -- strace -- addr2line -- gdb (GNU Debugger) -- Static Library Tools -- ar -- ch. 13 Linux How To's -- Debugging the Linking -- Determining the Binary File Type -- Determining the Binary File Entry Point -- Determining the Executable Entry Point -- Determining the Dynamic Library Entry Point. 
505 0 |a List Symbols -- List and Examine Sections -- Listing the Available Sections -- Examining Specific Sections -- List and Examine Segments -- Disassembling the Code -- Disassembling the Binary File -- Disassembling the Running Process -- Identifying the Debug Build -- Listing Load-time Dependencies -- Listing the Libraries Known to the Loader -- Listing Dynamically Linked Libraries -- strace Utility -- LD_DEBUG Environment Variable -- /proc/<ID>/maps File -- Isof Utility -- Programmatic Way -- Creating and Maintaining the Static Library -- ch. 14 Windows Toolbox -- Library Manager (lib.exe) -- lib.exe as a Static Library Tool -- lib.exe in the Realm of Dynamic Libraries (Import Library Tool) -- dumpbin Utility -- Identifying the Binary File Type -- Listing the DLL Exported Symbols -- Listing and Examining the Sections -- Disassembling the Code -- Identifying the Debug Build -- Listing the Load Time Dependencies -- Dependency Walker. 
546 |a English. 
590 |a O'Reilly  |b O'Reilly Online Learning: Academic/Public Library Edition 
650 0 |a Compilers (Computer programs) 
650 0 |a C (Computer program language) 
650 0 |a C++ (Computer program language) 
650 0 |a Compiling (Electronic computers) 
650 0 |a Software engineering. 
650 6 |a Génie logiciel. 
650 6 |a Compilateurs (Logiciels) 
650 6 |a C (Langage de programmation) 
650 6 |a C++ (Langage de programmation) 
650 6 |a Compilation (Informatique) 
650 7 |a COMPUTERS  |x Programming Languages  |x C.  |2 bisacsh 
650 7 |a COMPUTERS  |x Programming Languages  |x C++.  |2 bisacsh 
650 7 |a Software engineering.  |2 fast  |0 (OCoLC)fst01124185 
650 7 |a C (Computer program language)  |2 fast  |0 (OCoLC)fst00843279 
650 7 |a C++ (Computer program language)  |2 fast  |0 (OCoLC)fst00843286 
650 7 |a Compilers (Computer programs)  |2 fast  |0 (OCoLC)fst00871538 
650 7 |a Compiling (Electronic computers)  |2 fast  |0 (OCoLC)fst00871540 
776 0 8 |i Print version:  |a Stevanovic, Milan.  |t Advanced C and C++ Compiling.  |d Berkeley, CA : Apress, ©2014  |z 9781430266679 
856 4 0 |u https://learning.oreilly.com/library/view/~/9781430266679/?ar  |z Texto completo (Requiere registro previo con correo institucional) 
938 |a Askews and Holts Library Services  |b ASKH  |n AH29517915 
938 |a Books 24x7  |b B247  |n bks00065480 
938 |a ebrary  |b EBRY  |n ebr10866620 
938 |a EBSCOhost  |b EBSC  |n 1173945 
938 |a ProQuest MyiLibrary Digital eBook Collection  |b IDEB  |n cis29828074 
938 |a YBP Library Services  |b YANK  |n 11804787 
994 |a 92  |b IZTAP