ld: ไม่พบไลบรารีสำหรับ -lboost_system clang: ข้อผิดพลาด: คำสั่ง linker ล้มเหลวด้วยรหัสออก 1 (ใช้ -v เพื่อดูการเรียกใช้)

หลังจากลองใช้วิธีแก้ปัญหาหลายอย่าง ฉันคิดว่าฉันต้องการความช่วยเหลือในการทำความเข้าใจวิธีสร้าง Boost อย่างถูกต้องสำหรับ Mac OSX Lion การสร้างแอปข้ามแพลตฟอร์มบน XCode 4 โดยไม่ประสบความสำเร็จ =s

ฉันได้ปฏิบัติตามคำแนะนำนี้แล้ว และทำคำสั่งตามลำดับดังนี้

cd /Users/me/Documents/boost_1_53_0
./bootstrap.sh --prefix=installation
cd /Users/me/Documents/boost_1_53_0/tools/build/v2
./bootstrap.sh
./b2 install --prefix=installation
export PATH=$PATH:installation/bin
cd /Users/me/Documents/boost_1_53_0
./b2 --build-dir=installation toolset=darwin cxxflags="-arch i386" address-model=32 architecture=x86 stage

ฉันได้รับข้อผิดพลาดในชื่อคำถามหลังจากพยายามรวบรวมแอปบน XCode โดยมีการแก้ไขเหล่านี้:

เพิ่ม libs เหล่านี้ใน "Link Binary With Libraries" ภายใต้ "Build Phases":

libboost_filesystem.dylib
libboost_system.dylib

และเพิ่ม "$(SRCROOT)/../boost

cd /Users/me/Documents/boost_1_53_0
./bootstrap.sh --prefix=installation
cd /Users/me/Documents/boost_1_53_0/tools/build/v2
./bootstrap.sh
./b2 install --prefix=installation
export PATH=$PATH:installation/bin
cd /Users/me/Documents/boost_1_53_0
./b2 --build-dir=installation toolset=darwin cxxflags="-arch i386" address-model=32 architecture=x86 stage
53_0" ในส่วนหัวและเส้นทางการค้นหาไลบรารี

เมื่อดูคำถามอื่น ๆ ที่นี่ใน Stackoverflow ดูเหมือนว่าผู้คนจำนวนมากจะสร้างบูสต์ด้วย makefiles และส่งผ่านสิ่งต่าง ๆ เช่น LDFLAGS=-L/opt/local/lib ใน makefile

ฉันจะหาบทช่วยสอนหรือตัวอย่างที่ดีในการเพิ่มพลังการก่อสร้างได้ที่ไหน? ฉันไม่มีประสบการณ์ในการสร้าง makefile ด้วยตัวเอง แม้ว่าฉันจะยุ่งกับการแก้ไขง่ายๆ เพียงไม่กี่จุดก็ตาม


person Hobbyist    schedule 28.03.2013    source แหล่งที่มา
comment
คุณกำลังพยายามทำอะไรกับ cxxflags="-arch i386"?   -  person Sam Miller    schedule 29.03.2013
comment
ขั้นตอนที่คุณโพสต์มีไว้สำหรับการสร้าง Boost ในขณะที่ชื่อดูเหมือนจะเป็นข้อผิดพลาดของลิงก์เกอร์จากการลองใช้ไลบรารี Boost แล้วคุณมีคำถามอะไร? คุณประสบปัญหาในการสร้าง Boost libs หรือใช้งานหรือไม่?   -  person Praetorian    schedule 29.03.2013
comment
@Praetorian นั่นคือข้อผิดพลาดที่ส่งผลให้ใช้การเพิ่มประสิทธิภาพที่ฉันสร้างขึ้นด้วยตัวเลือกเหล่านั้น ฉันต้องการทราบว่ากระบวนการทั่วไปในการสร้างการเพิ่มประสิทธิภาพและการใช้งานกับ Xcode มีลักษณะอย่างไร   -  person Hobbyist    schedule 29.03.2013
comment
@SamMiller ฉันพยายามสร้างด้วยธงนั้นหลังจากดูคำถามอื่น ๆ ที่นี่ใน SO ฉันผิดทางหรือเปล่า? =ส   -  person Hobbyist    schedule 29.03.2013
comment
เป็นการยากที่จะบอกว่าคุณมาผิดทาง คำถามของคุณยังไม่ชัดเจน หากคุณกำลังพยายามสร้าง Boost Library เวอร์ชัน 32 บิต สิ่งที่คุณทำอยู่นั้นถูกต้อง   -  person Sam Miller    schedule 29.03.2013
comment
@SamMiller ฉันไม่แน่ใจว่าตัวเลือกบิลด์เหล่านี้เป็นสาเหตุของข้อผิดพลาดของลิงก์เกอร์หรือไม่ ฉันจะถามคำถามได้ดีขึ้นได้อย่างไร   -  person Hobbyist    schedule 29.03.2013
comment
คุณกำลังสร้างอะไรและอย่างไรเมื่อคุณพบข้อผิดพลาดของลิงก์เกอร์เกี่ยวกับ -lboost_system not found อัปเดตคำถามของคุณด้วย sscce ที่มีข้อมูลนั้น   -  person Sam Miller    schedule 29.03.2013
comment
@SamMiller การแก้ไขครั้งล่าสุดของฉันทำให้คำถามของฉันชัดเจนยิ่งขึ้นหรือไม่ ฉันไม่สามารถระบุโปรแกรมทั้งหมดได้อย่างแน่นอน เนื่องจากโปรแกรมมีขนาดค่อนข้างใหญ่ =s   -  person Hobbyist    schedule 29.03.2013
comment
คุณช่วยแก้ปัญหาของคุณได้ไหม? ฉันได้รับข้อผิดพลาดเดียวกันในขณะนี้เมื่อพยายามติดตั้ง glogg ฉันคิดว่าติดตั้งบูสต์ถูกต้องแล้ว ฉันยังอยู่บน mac osx   -  person Verena Haunschmid    schedule 17.05.2013
comment
@ExpectoPatronum น่าเศร้าที่ฉันใช้ c++11 เป็นทางเลือกแทนสิ่งที่ฉันพยายามทำ   -  person Hobbyist    schedule 23.05.2013


คำตอบ (1)


ตรวจสอบว่า boost dylibs ของคุณอยู่ที่ไหน อาจอยู่ภายใต้ไดเร็กทอรีระดับกลางใน "$(SRCROOT)/../boost_1_53_0"? ตัวอย่างเช่น "$(SRCROOT)/../boost_1_53_0/lib" หากเป็นเช่นนั้น ให้เพิ่มเส้นทางทั้งหมดไปยัง "เส้นทางการค้นหาไลบรารี" ในการตั้งค่าบิวด์
อย่างไรก็ตาม คุณแน่ใจหรือไม่ว่าต้องการเชื่อมโยงแบบไดนามิกไม่ใช่แบบคงที่

person cody    schedule 29.03.2013
comment
ฉันได้ลองระบุเส้นทางสำหรับส่วนหัวและเส้นทางการค้นหาไลบรารีแต่ละเส้นทางด้วย ด้วยความหวังว่าจะเป็นปัญหา จากนั้นฉันจึงตั้งค่าเริ่มต้นกลับไปยังเส้นทางรากเนื่องจากความไม่แน่นอน ฉันต้องการลิงก์แบบคงที่ แต่ไม่พบทางเลือกอื่น คุณช่วยแสดงตัวอย่างให้ฉันดูได้ไหม - person Hobbyist; 29.03.2013
comment
นี่ไม่เกี่ยวกับเส้นทางส่วนหัว แต่เป็นเพียงเส้นทางการค้นหาห้องสมุด ในตอนนี้ หากต้องการลิงก์แบบคงที่ คุณจะต้องคอมไพล์บูสต์แบบคงที่ (เช่น เพิ่ม link=static attr เมื่อรัน b2) โปรดดูที่ boost.2283326.n4.nabble.com/ สำหรับแนวคิดบางอย่าง (สแกนผ่านเธรดทั้งหมด - มัน มีประโยชน์). หลังจากนั้นคุณควรมีไลบรารี่ที่มีนามสกุล .a ให้เพิ่มเข้าไปแทน dylibs - person cody; 29.03.2013
comment
ดูเหมือนว่าฉันกำลังคิดอะไรไม่ออก ฉันควรถาม 'วิธีสร้างและคอมไพล์ Boost สำหรับ iPhone' แทนข้อผิดพลาดซึ่งอาจเป็นผลมาจากการคอมไพล์ที่ไม่ถูกต้อง =s - person Hobbyist; 29.03.2013
comment
คุณไม่ควรถามอย่างนั้น มีคำถามเช่นนี้อยู่แล้ว: stackoverflow.com/questions/1577838/ - person cody; 29.03.2013
comment
คุณสามารถดูได้ที่ danielsefton.com/2012/03/ เป็นเวอร์ชันล่าสุด - person cody; 29.03.2013
comment
ขอบคุณสำหรับแหล่งข้อมูล ฉันได้ดูพวกมันแล้วและพบว่าพวกมันทั้งหมดพร้อมทำและนำออกจากกล่อง แต่ฉันไม่ค่อยเข้าใจว่าพวกมันถูกสร้างขึ้นมาอย่างไร ฉันอยากจะเรียนรู้วิธีการ ขอแนะนำหรือไม่ - person Hobbyist; 29.03.2013
comment
ในกรณีนี้คุณต้องถามคำถามอื่นจริงๆ เพื่อให้กูรูด้านการส่งเสริมบางคนสามารถตอบได้ แต่ก่อนที่ฉันจะแนะนำให้สแกนผ่าน SO และการเริ่มต้นที่ดีคือลิงก์ในแผงด้านขวา (ที่เกี่ยวข้อง) - person cody; 29.03.2013