瑞士星历图书馆不会在Ubuntu上运行

时间:2013-12-29 09:42:56

标签: c linux ubuntu segmentation-fault

我正在尝试在主机上编译Swiss Ephemeris(ftp://ftp.astro.com/pub/swisseph/swe_unix_src_1.80.00.tar.gz)并在Ubuntu上加载(uname -a给出“Linux主机名3.8.0-27-通用#40-Ubuntu SMP Tue 7月9日00:17 :05 UTC 2013 x86_64 x86_64 x86_64 GNU / Linux“)。编译后(带有一些不重要的警告)产生最甜蜜的测试实用程序,它在尝试计算“真实节点”值时停止执行“分段错误”识别。所以输出看起来像:

root# ./swetest
Date ?11.11.2012

date (dmy) 11.11.2012 greg.   0:00:00 ET                version 1.80.00
ET: 2456242.50000000000
Epsilon (true)    23°26'10.3185
Nutation           0° 0'12.8789   -0° 0' 5.0637
Sun              228°59'59.3595   -0° 0' 0.4087    0.990046642    1° 0'20.7731
Moon             188°31'57.8543   -3°54'46.3397    0.002459541   14°21'16.6092
Mercury          243° 1'34.8373   -1°40'51.1438    0.725810675   -0°38'50.8096
Venus            196°23'20.1064    1°45'36.9548    1.314241757    1°13'33.8787
Mars             265°24'20.0798   -1° 5'27.6126    2.088236770    0°44'55.7696
Jupiter           74° 7'54.6997   -0°49'34.6905    4.133908104   -0° 6'44.8820
Saturn           214°20'13.6282    2°14'13.1210   10.732657811    0° 7' 6.4939
Uranus             5° 2'49.4996   -0°44'16.5288   19.336198119   -0° 1'31.9324
Neptune          330°21'30.7716   -0°37' 3.2729   29.781739405   -0° 0' 0.6865
Pluto            277°40'41.7136    3°26'39.7902   32.974892720    0° 1'32.2583
mean Node        236°17'52.2579    0° 0' 0.0000    0.002569555   -0° 3'10.7224
Segmentation fault

我的谦卑调查指向'swe_calc'电话,这是计算行星体的主要电话 坐标计算。这里记录了:http://www.astro.com/swisseph/swephprg.htm#_Toc365635945

我很感激任何建议或想法来解决这个问题。

提前致谢。

P.S.Siss Ephemeris是一个用于天文和星象计算的开源C库 天体坐标,速度等

1 个答案:

答案 0 :(得分:1)

对Debian Stable Linux的快速检查显示Makefile错过了#define _GNU_SOURCE,这导致了一些“隐式声明”和“< em>赋值使得整数中的指针没有强制转换“如果在64位上,则至少strdup()调用不好”。

要解决此问题,请按以下步骤修改Makefile

更改此行

CFLAGS = -g -O9 -Wall -fPIC # for Linux and other gcc systems

成为这一行:

CFLAGS = -D_GNU_SOURCE -g -O9 -Wall -fPIC -Wextra -pedantic -std=c99    # for Linux and other gcc systems