我有一个UserId
文件,通过使用shell可以很好地编译cpp
:
g++
但是,当我尝试通过extern "C"{
#include <quadmath.h>
}
inline char* print( const __float128& val)
{
char* buffer = new char[128];
quadmath_snprintf(buffer,128,"%+.34Qe", val);
return buffer;
}
int main(){
__float128 a = 1.0;
print(a);
return 0;
}
scrit编译它时,它失败并出现以下错误:
&#34;对quadmath_snprintf&#34;
的未定义引用
这里是python
脚本的代码:
python
知道如何解决这个问题吗?感谢。
答案 0 :(得分:3)
当你打开一个shell时,会为你静默初始化一些东西,对你的问题最重要的是设置环境变量。您最可能遗漏的是LIBRARY_PATH
的定义,它是链接器用于查找与您指示使用-lNAME
标志链接的库匹配的库的变量。
链接器需要的是一个目录列表,它将搜索匹配libNAME.{a,so}
的文件。您也可以使用-L
标志直接传递这些目录,但一般情况下,您应该尝试使用像CMake,Make或任何其他构建工具这样的程序。
这将允许您访问find_package
和target_link_libraries
(CMake)等命令,以便分别向构建目标添加库,而不必维护python来编译您的东西。< / p>