Using Cspice with mingw
Using Cspice with mingw
我正在尝试通过mingw将cspice与g++用于Windows。不幸的是,cspice没有为mingw提供库。这些图书馆可在 https://naif.jpl.nasa.gov/naif/toolkit_C.html 获得。它为通过 cspice 定义的函数提供了未定义的引用错误。它在 Linux 中正常运行。任何人都可以建议一种方法来使其工作。
我跑:
g++ -LK:\Data\cspice\lib -IF:\CPP\Libraries\Boost\boost_1_68_0 -o foo foo.cpp -l:cspice.a -lm
我得到的错误是:
对"furnsh_c"的未定义引用以及我在"SpiceUsr.h"中使用的其他功能。
我是否未正确链接文件或错误是什么。
我设法使用MinGW在窗口中编译它。
我从NASA网站下载了UNIX而不是WINDOWS的代码。
你需要下载一个libf2c库,arith.h(注释此行//#include <config.h>
)头和times.h头。
然后我使用以下CMakeLists.txt以及MinGW和CMAKE for Windows。
mkdir build
cd build
cmake .. -G "MinGW Makefiles"
mingw32-make
会出现一些编译错误,但它们很容易解决。
# CMAKE version and project name
cmake_minimum_required( VERSION 2.8.11 )
project( cspice )
# Add preprocessor directives
SET( GCC_COVERAGE_COMPILE_FLAGS "-c -ansi -m64 -O2 -fPIC -DNON_UNIX_STDIO" )
#SET( GCC_COVERAGE_LINK_FLAGS "-lf2c -lm" )
#SET( GCC_COVERAGE_LINK_FLAGS "-lf2c" )
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}" )
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}" )
# Include directories
include_directories( include
libf2c )
file( GLOB f2c_src "libf2c/*.c" )
file( GLOB f2c_headers "libf2c/*.h" )
file( GLOB csupport_src "src/csupport/*.c" )
file( GLOB csupport_headers "src/csupport/*.h" )
file( GLOB brief_src "src/brief_c/*.c" )
file( GLOB chronos_src "src/chrnos_c/*.c" )
file( GLOB ckbrief_src "src/ckbref_c/*.c" )
file( GLOB commnt_src "src/commnt_c/*.c" )
file( GLOB dskbrief_src "src/dskbrief_c/*.c" )
file( GLOB dskexp_src "src/dskexp_c/*.c" )
file( GLOB frmdiff_src "src/frmdif_c/*.c" )
file( GLOB inspekt_src "src/inspkt_c/*.c" )
file( GLOB mkdsk_src "src/mkdsk_c/*.c" )
file( GLOB mkspk_src "src/mkspk_c/*.c" )
file( GLOB msopck_src "src/msopck_c/*.c" )
file( GLOB spacit_src "src/spacit_c/*.c" )
file( GLOB spkdiff_src "src/spkdif_c/*.c" )
file( GLOB spkmerge_src "src/spkmrg_c/*.c" )
file( GLOB tobin_src "src/tobin_c/*.c" )
file( GLOB toxfr_src "src/toxfr_c/*.c" )
file( GLOB version_src "src/versn_c/*.c" )
file( GLOB cspice_src "src/cspice/*.c" )
file( GLOB cspice_headers "include/*.h" )
# Libraries
add_library( f2c ${f2c_src} ${f2c_header} )
add_library( csupport ${csupport_src} ${csupport_header} )
add_library( brief ${brief_src} )
add_library( chronos ${chronos_src} )
add_library( ckbrief ${ckbrief_src} )
add_library( commnt ${commnt_src} )
add_library( dskbrief ${dskbrief_src} )
add_library( dskexp ${dskexp_src} )
add_library( frmdiff ${frmdiff_src} )
add_library( inspekt ${inspekt_src} )
add_library( mkdsk ${mkdsk_src} )
add_library( mkspk ${mkspk_src} )
add_library( msopck ${msopck_src} )
add_library( spacit ${spacit_src} )
add_library( spkdiff ${spkdiff_src} )
add_library( spkmerge ${spkmerge_src} )
add_library( tobin ${tobin_src} )
add_library( toxfr ${toxfr_src} )
add_library( version ${version_src} )
add_library( cspice ${cspice_src} ${cspice_headers} )
# Executable
add_executable( simple src/cook_c/simple.c )
add_executable( states src/cook_c/states.c )
add_executable( subpt src/cook_c/subpt.c )
add_executable( tictoc src/cook_c/tictoc.c )
# Link the executable and libraries
target_link_libraries ( f2c )
target_link_libraries ( csupport f2c )
target_link_libraries ( brief f2c )
target_link_libraries ( chronos f2c )
target_link_libraries ( ckbrief f2c )
target_link_libraries ( commnt f2c )
target_link_libraries ( dskbrief f2c )
target_link_libraries ( dskexp f2c )
target_link_libraries ( frmdiff f2c )
target_link_libraries ( inspekt f2c )
target_link_libraries ( mkdsk f2c )
target_link_libraries ( mkspk f2c )
target_link_libraries ( msopck f2c )
target_link_libraries ( spacit f2c )
target_link_libraries ( spkdiff f2c )
target_link_libraries ( spkmerge f2c )
target_link_libraries ( tobin f2c )
target_link_libraries ( toxfr f2c )
target_link_libraries ( version f2c )
target_link_libraries ( cspice brief chronos ckbrief commnt dskbrief dskexp frmdiff inspekt mkdsk mkspk msopck spacit spkdiff spkmerge tobin toxfr version )
target_link_libraries ( simple cspice )
target_link_libraries ( states cspice )
target_link_libraries ( subpt cspice )
target_link_libraries ( tictoc cspice )
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- Boost::process on Windows - with MinGW?
- 使用 编译时。RES File with MinGW G++, .无法识别 RES
- Use Fortify sourceanalyzer with mingw
- Using Cspice with mingw
- CMake trouble with Mingw
- Boost 1.49/1.50/1.51 ASIO with MinGW & GCC 4.7.0 中的转换错误
- libcurl link with mingw and clion
- C++ 在 Code::Blocks 中使用 Gdiplus with MinGW 编译器
- cppUnit with Windows+minGW
- Qt5 Project on Windows with MinGW
- libstdc++ init with mingw
- using boost::asio::local with MinGW
- C++11 functionality with MinGW
- Eclipse CDT with MinGW GCC Make Error 127
- Using Clang 3.6 with MinGW w64 4.8
- IDE for MinGW with SVN support
- MinGW产生exe,当在不同的系统上运行时会产生"not compatible with the version of Windows"
- Building boost 1.61.0 with MinGW 5.3.0
- Qt 5.0 with MingW?