1

私の CMakeLists.txt には、33 行目があります。

link_directories (${QT_LIBRARIES})

ここで、次のように${QT_LIBRARIES}展開します。

optimized;C:/QtSDK/Desktop/Qt/4.8.1/msvc2010/lib/QtOpenGL4.lib;debug;C:/QtSDK/Desktop/Qt/4.8.1/msvc2010/lib/QtOpenGLd4.lib

CMake 2.8.10.1 への更新後、次の警告が表示されます。

CMake Warning (dev) at CMakeLists.txt:33 (link_directories):
  This command specifies the relative path

    optimized

  as a link directory.

  Policy CMP0015 is not set: link_directories() treats paths relative to the
  source dir.  Run "cmake --help-policy CMP0015" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.
This warning is for project developers.  Use -Wno-dev to suppress it.

ただし、ご覧のとおり、相対パスは含まれ${QT_LIBRARIES} ていません。私の意見では、CMP0015 ポリシーはここでは関係ありません。

どこかで私の間違いですか、それとも CMake にバグがありますか?

4

1 に答える 1

4

${QT_LIBRARIES}ライブラリのリストであり、ライブラリパスではありません。で使用するように設計されていtarget_link_libraries()ます。行33を次のように置き換えます。

targe_link_libraries(yourTargetName ${QT_LIBRARIES})

link_directories()とにかくフルパスを優先して使用することはお勧めしませtarget_link_libraries()ん。

于 2012-11-23T11:29:30.130 に答える