打開

2011-08-04 55 views
4

我創建了一個HDF5文件打開功能類似下面的一個HDF5文件錯誤:打開

int OpenHDF5(string sFileName) 
{ 
    // Check for valid HDF5 file 
    if (!H5File::isHdf5(sFileName.c_str())) 
    { 
     // Invalid HDF5 file 
     return -1 
    } 

    // Try block to detect exceptions raised by any of the calls inside it 
    try 
    { 
     // Turn off the auto-printing when failure occurs so that we can handle the errors appropriately 
     Exception::dontPrint(); 

     // Now Open the file 
     H5File file(sFileName.c_str(), H5F_ACC_RDONLY); 
    } 

    // Catch failure caused by the H5File operations 
    catch(FileIException error) 
    { 
     error.printError(); 
     return -1 
    } 

    return 0 
}   

沒有發生編譯錯誤,但未能有以下例外鏈接: 鏈接...
創建庫˚F :\ Tips \ Debug \ Tips.lib和對象F:\ Tips \ Debug \ Tips.exp
TwinSatObservation.obj:錯誤LNK2001:無法解析的外部符號「public:static class H5 :: FileCreatPropList const H5 :: FileCreatPropList :: DEFAULT 「(?DEFAULT @ FileCreatPropList @ H5 @@ 2V12 @ B)
TwinSatObservation.obj:錯誤LNK2001:無法解析的外部符號」pu blic:static class H5 :: FileAccPropList const H5 :: FileAccPropList :: DEFAULT「(?DEFAULT @ FileAccPropList @ H5 @@ 2V12 @ B)
F:\ Tips \ Debug \ Tips.exe:致命錯誤LNK1120:2個未解析的外部

我添加了以下庫的VS 2008鏈接
hdf5dll.lib
hdf5_hldll.lib
hdf5_cppdll.lib
hdf5_hl_cppdll.lib

的 「Addtional相關性」 的輸入框將請您告訴我我忘了添加哪個圖書館?非常感謝你!

+0

對於hdf5_cppdll.lib是10x;) – W55tKQbuRu28Q4xv

回答

2

HDF5CPP_USEDLL;_HDF5USEDLL_; in 預處理器定義輸入框。

+0

預處理器定義輸入框在哪裏?在鏈接器 - >輸入?我使用的是VS 2015,無法找到它! –

2

至於hdf5-1.8.17與任一VS2010或VS2015,定義H5_BUILT_AS_DYNAMIC_LIB作爲預處理器設置(項目>屬性> C/C++>預處理>預處理定義)固化完全相同的症狀我。感謝original post