2015-11-24 95 views
1

我试图使用美国宇航局的CSpice工具,但是当我尝试建立我的代码我收到这样CSpice在Visual C++ 2015年:链接错误

LNK2028 unresolved token (0A0004E6) "extern "C" void __cdecl spkpos_c(char const *,double,char const *,char const *,char const *,double * const,double *)"

错误,我已经放在函数库(cspice .lib)导入链接器 Project Property page并导入标题。
关于这个问题可能有什么想法?

代码:

#include <iostream> 
#include "stdafx.h" 
#include "Calculation.h" 
#include <ctime> 
#include <string> 
#include <sstream> 

SpiceDouble* Calculation::sunPosition() 
{ 
//--Kernels-- 
//Load Earth data 
furnsh_c("..\data\earth_pck\earth_latest_high_precision.bpc"); 
//Load LeapSeconds tabulation for time convertion 
furnsh_c("..\data\all_spk\naif0011.tls.pc"); 
//Framework used is J2000, so it does not need to be loaded 


//--Variables-- 
SpiceDouble epochTime; 
SpiceDouble sunPosition[3]; 
SpiceDouble lightYears; 

//--Calculation-- 
//Seconds past J2000 TDB 
time_t t = time(0); 
struct tm* utcNow = gmtime(&t); 
std::string month; 
switch (utcNow->tm_mon) 
{ 
case 0: 
    month = "JAN"; 
    break; 
case 1: 
    month = "FEB"; 
    break; 
case 2: 
    month = "MAR"; 
    break; 
case 3: 
    month = "APR"; 
    break; 
case 4: 
    month = "MAY"; 
    break; 
case 5: 
    month = "JUN"; 
    break; 
case 6: 
    month = "JUL"; 
    break; 
case 7: 
    month = "AUG"; 
    break; 
case 8: 
    month = "SEP"; 
    break; 
case 9: 
    month = "OCT"; 
    break; 
case 10: 
    month = "NOV"; 
    break; 
case 11: 
    month = "DEC"; 
    break; 
} 

std::stringstream format; 
format << (utcNow->tm_year + 1900) << " "; 
format << month << " " << utcNow->tm_mday << " "; 
format << utcNow->tm_hour << ":"; 
format << utcNow->tm_min << ":"; 
format << utcNow->tm_sec; 

ConstSpiceChar* et = format.str().c_str(); 
str2et_c(et, &epochTime); 

//Get current sun position relative to earth, using earth as the inertia center 
spkpos_c("sun", epochTime, "iau_earth", "none", "earth", sunPosition, &lightYears); 
printf("%f", sunPosition); 

return sunPosition; 
} 

回答

0

解决它。

解决方案:库是x64,Visual C++是为x86配置的。 - >在cmd中运行“vcvarsall.bat amd64”并将项目更改为构建x64