คำถามติดแท็ก glibc

8
ทำไม strlen ของ glibc จึงจำเป็นต้องมีความซับซ้อนในการทำงานอย่างรวดเร็ว
ฉันดูstrlenรหัสที่นี่และสงสัยว่าการเพิ่มประสิทธิภาพที่ใช้ในรหัสนั้นจำเป็นจริง ๆ หรือไม่ ตัวอย่างเช่นทำไมบางอย่างจะไม่เหมือนงานต่อไปนี้ดีหรือดีกว่า unsigned long strlen(char s[]) { unsigned long i; for (i = 0; s[i] != '\0'; i++) continue; return i; } รหัสเรียบง่ายกว่าและดีกว่าสำหรับการรวบรวมเพื่อเพิ่มประสิทธิภาพหรือไม่ โค้ดของstrlenหน้าหลังลิงค์มีลักษณะดังนี้: /* Copyright (C) 1991, 1993, 1997, 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Torbjorn …

11
ไลบรารี glibc หลายอันบนโฮสต์เดียว
ไลบรารี glibc หลายอันบนโฮสต์เดียว เซิร์ฟเวอร์ linux (SLES-8) ของฉันในปัจจุบันมี glibc-2.2.5-235 แต่ฉันมีโปรแกรมที่จะไม่ทำงานในเวอร์ชันนี้และต้องใช้ glibc-2.3.3 เป็นไปได้หรือไม่ที่จะติดตั้ง glibcs ​​หลายอันบนโฮสต์เดียวกัน นี่เป็นข้อผิดพลาดที่ฉันได้รับเมื่อฉันรันโปรแกรมบน glibc เก่า: ./myapp: /lib/i686/libc.so.6: version `GLIBC_2.3' not found (required by ./myapp) ./myapp: /lib/i686/libpthread.so.0: version `GLIBC_2.3.2' not found (required by ./myapp) ./myapp: /lib/i686/libc.so.6: version `GLIBC_2.3' not found (required by ./libxerces-c.so.27) ./myapp: /lib/ld-linux.so.2: version `GLIBC_2.3' not found (required …
171 linux  gcc  glibc 

4
ฉันจะเชื่อมโยงไปยังเวอร์ชัน glibc เฉพาะได้อย่างไร
เมื่อฉันรวบรวมบางสิ่งบนพีซี Ubuntu Lucid 10.04 ของฉันมันจะเชื่อมโยงกับ glibc Lucid ใช้ glibc 2.11 เมื่อฉันเรียกใช้ไบนารีนี้บนพีซีเครื่องอื่นที่มี glibc รุ่นเก่าคำสั่งล้มเหลวโดยบอกว่าไม่มี glibc 2.11 ... เท่าที่ฉันรู้ glibc ใช้การกำหนดเวอร์ชันสัญลักษณ์ ฉันบังคับให้ gcc เชื่อมโยงกับเวอร์ชันสัญลักษณ์เฉพาะได้หรือไม่ ในการใช้งานจริงของฉันฉันพยายามรวบรวม gcc cross toolchain สำหรับ ARM
111 linux  gcc  linker  glibc  libc 

4
ใช้ไลบรารี C ++ ในรหัส C
ฉันมีไลบรารี C ++ ที่มีคลาสต่างๆสำหรับจัดการข้อมูล ฉันมีซอร์สโค้ดสำหรับไลบรารี ฉันต้องการขยาย C ++ API เพื่อรองรับการเรียกฟังก์ชัน C เพื่อให้สามารถใช้ไลบรารีกับรหัส C และรหัส C ++ ได้ในเวลาเดียวกัน ฉันใช้โซ่เครื่องมือ GNU (gcc, glibc ฯลฯ ) ดังนั้นการรองรับภาษาและสถาปัตยกรรมจึงไม่ใช่ปัญหา มีสาเหตุใดบ้างที่ทำให้ไม่สามารถทำได้ในทางเทคนิค ? มีgotchaอะไรบ้างที่ฉันต้องระวัง? มีแหล่งข้อมูลโค้ดตัวอย่างและ / หรือเอกสารเกี่ยวกับเรื่องนี้หรือไม่ สิ่งอื่น ๆ ที่ฉันได้ค้นพบ: ใช้สิ่งต่อไปนี้เพื่อตัดส่วนหัว C ++ ของคุณที่จำเป็นต้องใช้โดยรหัส C #ifdef __cplusplus extern "C" { #endif // // Code goes here ... …
103 c++  c  gcc  glibc 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.