我尝试使用CMake生成Visual Studio项目文件。我在Visual Studio 2017开发人员命令提示符中执行以下命令:
cmake -G "Visual Studio 15 2017 Win64" -Thost=x64 ../project
除了ASM编译器(应该是Visual Studio附带的cl.exe
)之外,所有内容都能正确找到。我发现这很奇怪,因为找到了完全相同的C ++编译器!
作为参考,我在日志中看到这一行:
Warning: Did not find file Compiler/MSVC-ASM
有什么想法吗?
答案 0 :(得分:4)
我在VS2013上遇到了同样的问题并使用enable_language(ASM)
代替set_property(SOURCE <file>.S PROPERTY LANGUAGE ASM_MASM)
解决了这个问题,并强制将汇编代码文件包含在 <FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/password"
android:inputType="textPassword"
android:paddingEnd="60dp"
android:paddingStart="4dp"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center|end"
android:layout_marginEnd="25dp"
android:padding="8dp"
app:srcCompat="@drawable/ic_email"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center|end"
android:padding="8dp"
app:srcCompat="@drawable/ic_password"/>
</FrameLayout>
中,否则该文件将不会参与建立。
答案 1 :(得分:1)
我不知道为什么会发生这种情况,但看起来开发人员命令提示会混淆CMake用来查找ASM编译器的内容。
这对我有用:
确保cl.exe
位于您的PATH中(以及您项目使用的任何其他相关文件)。
在常规命令提示符(或Native Tools)中执行命令。
答案 2 :(得分:1)
事实证明{"data": arrayItens}
是实际CMake模块的名称。
我正在使用CMake 3.8.2,在我看来,它确实不见了!
MSVC-ASM
一个占位符,用于要用于Visual Studio汇编器的设置。它可能只是一个空文件:
https://github.com/Kitware/CMake/blob/master/Modules/Compiler/MSVC-ASM.cmake
我能够使用CMake的MSVC-ASM.cmake
选项进行跟踪。
它包含在另一个文件--trace
中,如果找不到,则会显示警告:
CMakeASMInformation.cmake
解决方案::在# Load compiler-specific information.
set(_INCLUDED_FILE "")
if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
include(Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
endif()
if(NOT _INCLUDED_FILE)
if("ASM${ASM_DIALECT}" STREQUAL "ASM")
message(STATUS "Warning: Did not find file Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}")
endif()
include(Platform/${CMAKE_BASE_NAME} OPTIONAL)
endif()
下创建了一个空的MSVC-ASM.cmake
,然后中提琴,警告消失了。
答案 3 :(得分:-1)
您的CMake版本太旧...较旧的版本中缺少所需的文件...