Не удалось устранить ошибку компоновщика: "фатальная ошибка C1049: недопустимый числовой аргумент" specload ""
Попытка собрать библиотеку с использованием Nmake и msvc 120 из некоторых сторонних библиотек, существующего кода и встроенной зависимой библиотеки (база кода огромна).
Ниже приведена ошибка, которую я получаю при компоновке библиотеки:
Linking CXX shared library test.dll
fatal error C1049: invalid numerical argument 'specload'
LINK : fatal error LNK1257: code generation failed
LINK failed. with 1257
NMAKE : fatal error U1077:
'...\win32\cmake\3.1.3\bin\cmake.exe' : return code '0xffffffff'
Stop.
NMAKE : fatal error U1077:
'...win32\msvc120\VC\bin\nmake.exe' : return code '0x2'
Stop.
Я понятия не имею, что вызывает вышеуказанную ошибку.
Есть ли способ собрать больше информации о том, что вызывает вышеуказанную ошибку (точный файл, который вызывает эту ошибку), или есть известное решение для ее устранения?
Команда запуска: "nmake / K install"
CMakeLists.txt используется:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9)
include (GenerateExportHeader)
set(CMAKE_USER_MAKE_RULES_OVERRIDE ${CMAKE_CURRENT_SOURCE_DIR}/CMake/c_flags_override.cmake)
set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX ${CMAKE_CURRENT_SOURCE_DIR}/CMake/cxx_flags_override.cmake)
PROJECT(TestProject)
SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMake" "${CMAKE_MODULE_PATH}")
SET(STATIC_MSVC_RUNTIME True)
set(CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1")
set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/MT /Zi /O1 /Ob1 /D NDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "/MT /Zi /O2 /Ob2 /D NDEBUG")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/MT /Zi /O2 /Ob1 /D NDEBUG")
set(CMAKE_SHARED_LINKER_FLAGS "/OPT:NOREF /SAFESEH:NO /INCREMENTAL:NO")
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
FIND_PACKAGE(TestDependency REQUIRED)
FIND_PACKAGE(PNG REQUIRED)
FIND_PACKAGE(SSL REQUIRED)
FIND_PACKAGE(FREEGLUT REQUIRED)
FIND_PACKAGE(OPENCV REQUIRED)
SET (SOURCES "${SOURCES}"
"BaseTest.cpp"
"StreamFlow.cpp"
"UIManager.cpp"
)
include_directories(.)
INCLUDE_DIRECTORIES(
"${TestDependency_INCLUDE}"
"${PNG_INCLUDE}"
"${FREEGLUT_INCLUDE}"
"${OPENCV_INCLUDE}"
"$ENV{JAVA_HOME}/include"
"$ENV{JAVA_HOME}/include/win32"
"$ENV{TestDependencyInstallBase/../TestDependency/core"
"$ENV{TEST_DIR}"
"$ENV{TEST_DIR}/Tests"
)
add_subdirectory("$ENV{TEST_DIR}" Test)
add_compiler_export_flags()
TARGET_LINK_LIBRARIES(test
${TestDependency_LIBRARY}
${LIBPNG_LIBRARY}
${ZLIB_LIBRARY}
${SSL_LIBRARY}
${FREEGLUT_LIBRARY}
${OPENCV_CORE_LIBRARY}
${OPENCV_HIGHGUI_LIBRARY}
${OPENCV_IMGPROC_LIBRARY}
${EAY_LIBRARY}
ws2_32
rpcrt4
Winmm
Dsound
)
SET (OPENCV_DLL_64 thirdparty/Opencv/bin/x64/vc12/Release/opencv_core2411.dll thirdparty/Opencv/bin/x64/vc12/Release/opencv_highgui2411.dll thirdparty/Opencv/bin/x64/vc12/Release/opencv_imgproc2411.dll)
IF (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x64")
MESSAGE("using x64.")
INSTALL(TARGETS test DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Release/x64 CONFIGURATIONS Release)
INSTALL(FILES
thirdparty/freeglut/bin/x64/freeglut.dll
${OPENCV_DLL_64}
build/x86_64/Release/test.pdb
DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Release/x64)
ENDIF()
Примечание. Это работало ранее, но после внесения изменений в код TestDependancy он начал выдавать эту ошибку.