我在使用带有“ Scons”的第三方库的C中进行编译时遇到问题

时间:2019-03-11 00:19:56

标签: c math.h

我正在用C语言创建一个程序,我将需要一些水和蒸汽的热力学特性。 我已经在线搜索了,发现了这个图书馆:http://freesteam.sourceforge.net

他们建议在他们的网站上使用“ scons”进行编译。 为此,我必须有一个名为SConstruct的文件,其中包含以下代码

# simple SCons script to build the example(s)

env = Environment()
import sys

import platform
if platform.system() == "Windows":
    # windows has problems, so we help it along a bit...
    cmd = [sys.executable,r'..\freesteam-config']
else:
    # on other platforms, it just works...
    cmd = ['freesteam-config']

env.ParseConfig(cmd + ['--libs','--cppflags'])

env.Program('test1',['test1.c'])

并在命令行上运行行$ scons

我的大问题是,当我运行一个简单的代码时, 这部分代码似乎无法正常运行:

    #include <freesteam/steam_ps.h>
    #include <freesteam/steam_pT.h>
    #include <freesteam/region4.h>
    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>

    t = d - (a-d)/(1 + pow((p[0]/c),b)); 

我刚刚发布了库和似乎无效的行,因为其余的只是printfs和scanfs。所有这些变量都是双精度。

然后我得到这个错误

ubuntu@ubuntu:~/Documents/test folder$ scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o test1 test1.o -L/usr/local/lib -lfreesteam
/usr/bin/ld: test1.o: undefined reference to symbol 'pow@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
scons: *** [test1] Error 1
scons: building terminated because of errors.

如果有人可以帮助我,我将不胜感激。 我不太确定,但我认为可能是pow()函数。 尽管我曾尝试放置pow(2,2)之类的东西,但效果很好。

0 个答案:

没有答案