如何link Libb64库在编译时?

How to link Libb64 libraries at compiling?

我需要在我的 C 程序中使用 Base64 encoding/decoding,我尝试使用 Libb64 库的一些函数。当我编译代码时,出现以下错误:

... undefined reference to 'base64_init_encodestate'
... undefined reference to 'base64_encode_block'
... undefined reference to 'base64_encode_blockend'
collect2: error: ld returned 1 exit status

我尝试使用 -libb64、-llibb64、-lbase64 等参数编译代码,但没有成功。

编译时应该加什么link参数?或者有什么办法可以解决这个问题?

你可以试试-lb64。这是一个猜测,可能行不通。试试吧,如果它不起作用我会实际安装并准确回答。

编辑 1:虽然它解决了您的问题,但这不是真正的答案。每当您在 Linux 上安装库时(假设您使用的是 Linux),它就会以 libxyz.so 的名称安装,并且您应该切换到 compiler/linker -lxyz。如果您不知道库的名称,请检查诸如 Synaptic 之类的东西以了解该包安装了哪些文件。如果您正在按源安装,那么请查看在您安装的源目录中生成的库。我不知道 yum, apt-getpacmanemerge 的确切命令,它们是不同发行版的包管理器,但您可以阅读手册页并知道这一点。