C++Builder 10.2.3迁移Clang 64位编译器遇pow10未解析外部符号求助
解决C++Builder 10.2.3 Clang 64位编译时pow10()未解析外部符号问题
你遇到的这个pow10()未解析外部符号问题,是因为在C++Builder 10.2.3的Clang 64位环境下,这个函数属于C标准数学库的扩展函数,编译器默认不会自动链接对应的依赖库。
你需要手动添加链接的库是**libm.lib**。如果你的项目使用的是动态运行时库,也可以选择链接msvcrt.lib,不过libm.lib是直接对应数学函数实现的专用库,更推荐这个。
具体操作可以选两种方式:
- 通过项目设置添加:
- 打开项目的属性设置界面
- 导航到「链接器」→「输入」选项卡
- 在「附加依赖项」中填入
libm.lib,保存后重新编译链接即可
- 通过代码指令自动链接:
- 在你的源文件(比如包含
math.h的头文件或者主源文件)中添加一行:#pragma comment(lib, "libm.lib")
- 在你的源文件(比如包含
补充说明:pow10()并不是C标准的核心函数,属于POSIX扩展或者特定编译器实现的函数,所以部分环境下需要显式链接数学库才能正常使用。
内容的提问来源于stack exchange,提问作者user2113260
相关产品推荐
相关产品推荐

