สวัสดีทุกคน ฉันเป็น C++ เริ่มต้นและฉันเพิ่งพบว่า fmt lib นั้นน่าสนใจจริงๆ แต่ฉันพบปัญหาเมื่อพยายามใช้มัน ฉันใช้ homebrew เพื่อติดตั้ง fmt lib ชงติดตั้ง fmt
ฉันตรวจสอบการติดตั้ง fmt โดยใช้ ค้นหาไฟล์ apt /usr/include/fmt/format.
แล้วมันก็กลับมา libfmt-dev: /usr/include/fmt/format.h
. ผมลองสร้างโปรเจ็กต์ตัวอย่างเพื่อทดสอบดังนี้
#รวม <fmt/format.h>
int หลัก () {
fmt::print("คำตอบคือ {}.\n", 42);
}
หลังจากที่ฉันพยายามปฏิบัติตาม gcc11 มันก็กลับมา
/home/linuxbrew/.linuxbrew/bin/ld: /tmp/ccmrL6RH.o: ในฟังก์ชัน `โมฆะ fmt::v8::print<int>(fmt::v8::basic_format_string<char, fmt::v8:: type_identity<int>::type>, int&&)':
/home/linuxbrew/.linuxbrew/include/fmt/core.h:3209: การอ้างอิงที่ไม่ได้กำหนดถึง `fmt::v8::vprint(fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt ::v8::basic_format_context<fmt::v8::appender, char> >)'
Collect2: ข้อผิดพลาด: ld ส่งคืนสถานะการออก 1 รายการ
จริงๆแล้วฉันไม่เข้าใจว่าปัญหานี้คืออะไร ... ไวยากรณ์ดูดีและไม่มีอะไรผิดปกติกับคอมไพเลอร์และ IDE คุณช่วยฉันหน่อยได้ไหม ขอบคุณล่วงหน้า.
อัปเดต:
@steeldriver บอกฉันว่าเป็นเพราะ fmt lib ไม่ได้เชื่อมโยง ดังนั้นฉันจึงเพิ่มคำสั่งบางอย่างใน งาน json
ไฟล์:
...
"งาน": [
...
"หาเรื่อง": [
...
"-lfmt", "-L~/usr/include/fmt"
]
]
...
/usr/include/fmt
เป็นเส้นทางไปยัง fmt lib @steeldriver แนะนำการอ้างอิงนี้ https://stackoverflow.com/questions/49486880/how-to-link-fftw3-libraries-for-c-in-vs-code-in-ubuntu.