来自python的Cpp编译失败但在shell中没有

时间:2016-10-05 07:47:39

标签: python c++ g++

我有一个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

知道如何解决这个问题吗?感谢。

1 个答案:

答案 0 :(得分:3)

当你打开一个shell时,会为你静默初始化一些东西,对你的问题最重要的是设置环境变量。您最可能遗漏的是LIBRARY_PATH的定义,它是链接器用于查找与您指示使用-lNAME标志链接的库匹配的库的变量。

链接器需要的是一个目录列表,它将搜索匹配libNAME.{a,so}的文件。您也可以使用-L标志直接传递这些目录,但一般情况下,您应该尝试使用像CMake,Make或任何其他构建工具这样的程序。

这将允许您访问find_packagetarget_link_libraries(CMake)等命令,以便分别向构建目标添加库,而不必维护python来编译您的东西。< / p>