37

ARMターゲットシステムのcmake(Windows上)のコンパイルオプションですが、configureを実行するとコンパイラテストが開始されます:

CMake Error at D:/Program Files/CMake 2.8/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:52 (MESSAGE):
  The C compiler "D:/Program Files/yagarto/bin/arm-none-eabi-gcc.exe" is not
  able to compile a simple test program.

  It fails with the following output:

   Change Dir: D:/merge/complex/build/CMakeFiles/CMakeTmp



  Run Build Command:D:/PROGRA~1/YAGART~1/bin/make.exe "cmTryCompileExec/fast"

  D:/PROGRA~1/YAGART~1/bin/make.exe -f
  CMakeFiles/cmTryCompileExec.dir/build.make
  CMakeFiles/cmTryCompileExec.dir/build

  make.exe[1]: Entering directory
  `D:/merge/complex/build/CMakeFiles/CMakeTmp'

  "D:/Program Files/CMake 2.8/bin/cmake.exe" -E cmake_progress_report
  D:/merge/complex/build/CMakeFiles/CMakeTmp/CMakeFiles 1

  Building C object CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.o

  "D:/Program Files/yagarto/bin/arm-none-eabi-gcc.exe" -o
  CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.o -c
  D:/merge/complex/build/CMakeFiles/CMakeTmp/testCCompiler.c

  Linking C executable cmTryCompileExec

  "D:/Program Files/yagarto/bin/arm-none-eabi-gcc.exe"
  "CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.o" -o cmTryCompileExec
  -rdynamic 

  arm-none-eabi-gcc.exe: error: unrecognized option '-rdynamic'

  make.exe[1]: *** [cmTryCompileExec] Error 1

Yagatdo 4.6.* クロスコンパイル ツールチェーンの使用

このテストをスキップしたり、発生している -rdynamic エラーを修正したりするにはどうすればよいですか?

4

5 に答える 5

38

true に設定CMAKE_<LANG>_COMPILER_WORKSすると、その言語のコンパイラ チェックがさらに抑制されます。

set(CMAKE_C_COMPILER_WORKS 1)
于 2015-06-04T11:02:03.763 に答える
34

呼び出しに追加NONEすることで、コンパイラのチェックをスキップできます。project

project(<projectname> NONE)

しかし、これはかなり広範囲にわたる影響を与える可能性があります。詳細については、

cmake --help-command project

私はARMに精通していないので、これはおそらくここでの最善の選択肢ではありません。-rdynamicフラグを修正する方法があるかどうかを確認したほうがいいと思います。

編集:

これは、事実上まだ解決されていないバグとして識別されたようです。バグレポートのコメントには、回避策として次の行を追加することが記載されています(おそらく電話をprojectかける前に)。

set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
于 2012-05-15T11:08:33.607 に答える