2

タスク -> Cmake を実行して、Windows で dll を生成し、Linux で共有オブジェクト (.so ファイル) を生成します。

Windows から Linux にコードを移植しています。ソースコードに必要な変更を加えました。CMakeLists.txt ファイルを変更しようとしましたが、作成しようとすると「ソース ファイルが見つかりません」というエラーが表示されます。私が間違っているところを指摘してください。CMakeList.txt を以下に示します。cmake は Windows では問題なく動作しますが、Linux ではエラーが発生します。
Linux で動作するように数行コメントし、CMakeLIsts.txt に行を追加しましたが、動作しません。

CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
CMAKE_POLICY( SET CMP0017 NEW ) 

PROJECT( disk_space_model )
INCLUDE( ../libs/helper_functions.cmake )
INCLUDE_THIRD_PARTY_SFC()

SET(    HEADER_FILES 
        stdafx.h
        INS_sensor_model.h
)

SET(    SOURCE_FILES
        Disk_space_model.cpp
)

SET(    RESOURCE_FILES 
        "Disk Space DLL.rc"
        resource.h
)

COMMON_SETUP()
SETUP_Lab_LIB_FILES( lib_foo lib_boo_files lib_platform lib_utils )

#ADD_DEFINITIONS(-D_USRDLL -DINSSENSORDLL_EXPORTS)
#ADD_LIBRARY( disk_space_model SHARED ${SOURCE_FILES} ${HEADER_FILES} ${RESOURCE_FILES} ${CMAKE_HELPER_FILES} )
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--export-all-symbols")
ADD_LIBRARY( disk_space_model [ STATIC | SHARED ] ${SOURCE_FILES} ${HEADER_FILES} ${RESOURCE_FILES}  ${CMAKE_HELPER_FILES} )
SET_OUTPUT_DIRS( disk_space_model )
TARGET_LINK_LIBRARIES( disk_space_model ${LIB_FILES} )

以下は、構成後に作成してCMake-guiで生成したときに受け取った次のエラーです。

  4 bit compiler
-- Configuring done
CMake Error at CMakeLists.txt:37 (ADD_LIBRARY):
  Cannot find source file:

    [

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx


CMake Error in CMakeLists.txt:
  Cannot find source file:

    STATIC

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx


CMake Error in CMakeLists.txt:
  Cannot find source file:

    |

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx


CMake Error in CMakeLists.txt:
  Cannot find source file:

    SHARED

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx


CMake Error in CMakeLists.txt:
  Cannot find source file:

    ]

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx


-- Build files have been written to: /home/mydir/svn/proj1/apps/disk space
make: *** [cmake_check_build_system] Error 1
4

1 に答える 1

4

これが原因で壊れています:

ADD_LIBRARY( disk_space_model [ STATIC | SHARED ] ${SOURCE_FILES} ${HEADER_FILES} ${RESOURCE_FILES}  ${CMAKE_HELPER_FILES} )

ドキュメントからコピーして貼り付けたと思います[ STATIC | SHARED ]STATICそれはどちらかまたはSHARED(あなたの場合は後者)の選択であるはずです。

于 2013-03-04T11:18:00.833 に答える