C ++ - 问题未定义参考PCM :: getInstance()

问题描述 投票:0回答:1

在我提出一个新问题之前,我已经阅读了几个或更多关于此的问题,但我一直在混淆。

我编译我的程序:

g ++ -std = c ++ 11 -Wall -O3 -fopenmp main.cpp -o main -D WITH_COUNTER -I / usr / local / src / pcm -L / usr / local / src / pcm -L / usr / local / LIB

然后,我发现了错误:

main.cpp :(。text.startup + 0x27e):对PCM :: getInstance()的未定义引用

main.cpp :(。text.startup + 0x289):对PCM :: resetPMU()的未定义引用

main.cpp :(。text.startup + 0x310):对PCM :: program的未定义引用(PCM :: ProgramMode,void const *)

那么,任何人都可以向我解释如何解决这个问题吗?

c++ compiler-errors linker g++ compiler-warnings
1个回答
1
投票

您实际上并没有链接到库本身。

-L选项告诉链接器将一个目录添加到其搜索路径,但链接器不会遍历其路径中的所有库以查找可能正确的库(可能有数百甚至数千个)。

相反,您需要使用-l(小写L)选项显式指定要链接的库。

对于一些示例库foo,将存在名为libfoo.alibfoo.so的文件。要与它链接,请使用-lfoo

如果您的库的文档没有告诉您应链接哪个库,请查找合适的命名文件(如上所述)并使用正确的选项链接库。

© www.soinside.com 2019 - 2024. All rights reserved.