I have a simple Qt5 5.13.0 hello world project, whose Makefile I generate with CMake 3.15.2. Then, I use NMake in the Developer Command Prompt for VS 2019. I successfully generate the Makefiles with cmake -G "NMake Makefiles" ..
in a build
directory that I created in source. Then when I build with nmake
, I get the error in the linking stage.
I am also using the Boost and Eigen libraries, but I only started seeing this issue when I tried to incorporate Qt5 into my project.
Other answers mention that this issue may be caused by spaces in the directory names. However, my top-level CMakeLists.txt
is located at Z:\
, and I'm building in Z:\build
. My compiled static qtbase module (built from source) is in Z:\lib\qt
. None of these have spaces, so I'm not sure what's causing the issue.
The relevant parts of the top-level CMakeLists.txt
that involve Qt5 are as shown:
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_PREFIX_PATH $ENV{Qt5_DIR})
find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets)
if(Qt5_FOUND)
message(STATUS "Qt5 FOUND")
endif()
add_subdirectory(src)
Then, in the src
subdirectory, I have another CMakeLists.txt
file:
include_directories(${PROJECT_BINARY_DIR}/include)
add_executable(testProject helloworld.cpp)
target_link_libraries(testProject ${Boost_LIBRARIES} Qt5::Core Qt5::Gui Qt5::Widgets)
I have the Qt5_DIR
environment variable set as Z:\lib\qt
.
After I generate the Makefile, I run nmake
, and then I see the following errors:
Scanning dependencies of target testProject_autogen
[ 25%] Automatic MOC and UIC for target testProject
[ 25%] Built target testProject_autogen
Scanning dependencies of target testProject
[ 50%] Building CXX object src/CMakeFiles/testProject.dir/testProject_autogen/mocs_compilation.cpp.obj
mocs_compilation.cpp
[ 75%] Building CXX object src/CMakeFiles/testProject.dir/helloworld.cpp.obj
helloworld.cpp
[100%] Linking CXX executable testProject.exe
LINK: command "C:\PROGRA~2\MIB055~1\2019\COMMUN~1\VC\Tools\MSVC\1422~1.279\bin\Hostx86\x86\link.exe /nologo @CMakeFiles\testProject.dir\objects1.rsp /out:testProject.exe /implib:testProject.lib /pdb:Z:\build\src\testProject.pdb /version:0.0 /machine:X86 /INCREMENTAL:NO /subsystem:console C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\mpr.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\netapi32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\userenv.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\version.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\ws2_32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\kernel32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\user32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\shell32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\uuid.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\ole32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\advapi32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\winmm.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\mpr.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\netapi32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\userenv.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\version.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\ws2_32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\kernel32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\user32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\shell32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\uuid.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\ole32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\advapi32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\winmm.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\mpr.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\netapi32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\userenv.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\version.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\ws2_32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\kernel32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\user32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\shell32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\uuid.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\ole32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\advapi32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\winmm.lib gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib uuid.lib user32.lib advapi32.lib gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib uuid.lib user32.lib advapi32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\mpr.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\netapi32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\userenv.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\version.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\ws2_32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\kernel32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\user32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\shell32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\uuid.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\ole32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\advapi32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\winmm.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\shell32.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\uxtheme.lib C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86\dwmapi.lib gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib uuid.lib user32.lib advapi32.lib ..\..\lib\boost\stage\lib\libboost_filesystem-vc142-mt-x32-1_70.lib ..\..\lib\qt\lib\Qt5Core.lib ..\..\lib\qt\lib\Qt5Gui.lib ..\..\lib\qt\lib\Qt5Widgets.lib ..\..\lib\qt\lib\Qt5Gui.lib ..\..\lib\qt\lib\Qt5Core.lib ..\..\lib\qt\lib\Qt5Gui.lib ..\..\lib\qt\lib\qtlibpng.lib ..\..\lib\qt\lib\Qt5Core.lib ..\..\lib\qt\lib\qtpcre2.lib ..\..\lib\qt\lib\qtharfbuzz.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:testProject.exe.manifest" failed (exit code 1181) with the following output:
LINK : fatal error LNK1181: cannot open input file 'C:\Program.obj'
NMAKE : fatal error U1077: '"C:\Program Files\CMake\bin\cmake.exe"' : return code '0xffffffff'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\HostX86\x86\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\HostX86\x86\nmake.exe"' : return code '0x2'
Stop.
Is there an error in my CMakeLists.txt
files, my Qt5 libraries, or somewhere else?
User contributions licensed under CC BY-SA 3.0