我正在尝试在主机上编译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库 天体坐标,速度等
答案 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