2015-11-24 116 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