gpt4 book ai didi

c++ - 对 `u_fopen_48' 的 undefined reference

转载 作者:搜寻专家 更新时间:2023-10-31 01:54:37 24 4
gpt4 key购买 nike

我是 c/c++ 的新手,我想我遇到了一些基本问题。编译时出现 undefined reference to u_fopen_48' 错误:

#include <unicode/ustdio.h>

int main(int argc, char** argv) {
UFILE* ufile = u_fopen("/home/emstol/Desktop/utf8demo.txt", "r", NULL, "utf8");
return 0;
}

此函数的文档是 here .我正在使用 ICU 4.8.1(自己编译,根据 readme.html 一步一步;)),NetBeans 和 g++ 下面。如果它有帮助,这就是我在构建过程中看到的:

"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `/home/emstol/NetBeansProjects/TextFairy1'
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/textfairy1
make[2]: Entering directory `/home/emstol/NetBeansProjects/TextFairy1'
mkdir -p dist/Debug/GNU-Linux-x86
g++ -o dist/Debug/GNU-Linux-x86/textfairy1 build/Debug/GNU-Linux-x86/main.o
build/Debug/GNU-Linux-x86/main.o: In function `main':
/home/emstol/NetBeansProjects/TextFairy1/main.cpp:4: undefined reference to `u_fopen_48'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/textfairy1] Error 1
make[2]: Leaving directory `/home/emstol/NetBeansProjects/TextFairy1'
make[1]: *** [.build-conf] Error 2
make[1]: Leaving directory `/home/emstol/NetBeansProjects/TextFairy1'
make: *** [.build-impl] Error 2

最佳答案

您似乎忘记链接您使用的库。你应该引用This page获取说明。

在构建复合项目时,编译器无法轻松找到所有需要的引用。大多数库都以共享目标文件 (.so) 的形式出现,并且没有将它们的 C 代码与项目的其余部分一起编译,同时只提供它们函数的头文件。这允许编译器在代码中为要放入的函数创建“套接字”,但不告诉链接器应该从哪里获取这些函数——链接过程将简单地失败。因此,您必须明确地告诉链接器在哪里搜索它要查找的符号,这通常是通过 -l 标志完成的,尽管看起来 ICU 库采取了一些不同的方法

关于c++ - 对 `u_fopen_48' 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9401812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com