c++ - ¿No se pueden realizar pruebas de 64 bits con AppVeyor?
visual-studio msbuild (1)
Nuestro archivo de solución de Visual Studio incluye Win32, x64 en ambas configuraciones de Debug, Release. AppVeyor está fallando en todas las compilaciones de 64 bits.
El archivo de configuración de AppVeyor se encuentra a continuación. El archivo es mínimo y debería ser fácil de analizar.
Hay dos archivos de proyecto en juego. Uno es cryptlib.vcxproj
y construye una biblioteca. El otro es cryptest.vcxproj
y ejercita la biblioteca. Los archivos son horribles pero funcionan:
Nuestra fase de compilación de AppVeyor solo crea el proyecto con MSbuild. Abajo está mi clon de prueba en Noloader | GitHub
test_script:
- cmd: >-
msbuild /t:Build cryptlib.vcxproj
msbuild /t:Build cryptest.vcxproj
msbuild /t:CopyCryptestToRoot cryptest.vcxproj
cryptest.exe v
cryptest.exe tv all
Nuestra compilación de 64 bits falla en AppVeyor. Probamos tanto x64
como Win64
. Los resultados están disponibles en mi clon de prueba en Noloader | AppVeyor . Debajo está la cola de una construcción fallida.
...
validat0.cpp
validat1.cpp
validat2.cpp
validat3.cpp
Generating Code...
LINK : fatal error LNK1104: cannot open file ''Ws2_32.lib''
[C:/projects/cryptopp/cryptest.vcxproj]
Las cosas funcionan bien a nivel local con MSBuild. La búsqueda del problema encuentra algunos éxitos. El mejor golpe es esta pregunta.
Creemos que esto podría estar relacionado: ¿Cómo ejecutar VCUpgrade antes de la compilación de Appveyor? Lo que no entendemos es que MSBuild falla inmediatamente cuando necesita una actualización. Como no está fallando, no sabemos qué está sucediendo.
¿Cuál es el problema y cómo lo solucionamos?
Appveyor parece usar x86 / x64 como nombres de plataforma (y, supongo, traduce "x86" en "Win32" para las imágenes de compilación VS) así que me quedaría con eso y luego pasaría la plataforma / configuración explícitamente. Nunca he tenido problemas con eso, y he bifurcado cryptopp y verificado que también está bien allí.
configuration:
- Debug
- Release
platform:
- x86
- x64
build_script:
- cmd: >-
msbuild cryptlib.vcxproj /p:platform=%platform%;configuration=%configuration%
msbuild cryptest.vcxproj /p:platform=%platform%;configuration=%configuration%