CMakeLists编译报错linker input file not found
解决办法:add_compile_options(-std=c++11 -o) 删掉 -o
原始CMakeLists
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT ("tl_vi" CXX)
MACRO(sort_files source_files)
SET(sgbd_cur_dir ${CMAKE_CURRENT_SOURCE_DIR})
FOREACH(sgbd_file ${${source_files}})
STRING(REGEX REPLACE ${sgbd_cur_dir}/\(.*\) \\1 sgbd_fpath ${sgbd_file})
STRING(REGEX REPLACE "\(.*\)/.*" \\1 sgbd_group_name ${sgbd_fpath})
STRING(COMPARE EQUAL ${sgbd_fpath} ${sgbd_group_name} sgbd_nogroup)
IF(MSVC)
string(REPLACE "/" "\\" sgbd_group_name ${sgbd_group_name})
ENDIF(MSVC)
IF(sgbd_nogroup)
SET(sgbd_group_name "\\")
ENDIF(sgbd_nogroup)
SOURCE_GROUP(${sgbd_group_name} FILES ${sgbd_file})
ENDFOREACH(sgbd_file)
ENDMACRO(sort_files)
INCLUDE_DIRECTORIES(
"${CMAKE_CURRENT_SOURCE_DIR}/include"
"${CMAKE_CURRENT_SOURCE_DIR}/3th/include"
)
IF(MSVC)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
ADD_DEFINITIONS(-DMSVC_VMG_ENÄBLED)
SET(CMAKE CXX_FLAGS "${CMAKE_CXX_FLAGS} /vmg")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
ENDIF(MSVC)
IF(UNIX)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y ")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
ENDIF(UNIX)
FILE(GLOB all_files
include/*.h
include/*.hpp
include/*.hxx
include/*.tcc
src/*.cpp
src/*.cc
src/*.cxx
src/*.c
src/*.C
*.cpp
*.cc
*.cxx
*.c
*.C)
sort_files(all_files)
add_compile_options(-std=c++11 -o)
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/3th/lib")
add_executable(tl_vi ${all_files})
target_link_libraries(tl_vi gtest pthread)
报错如下
[root@localhost test]# ./run.sh
try build /home/d244/244/code/test
************************************************
start generate cake eclipse project...
-- The CXX compiler identification is GNU 11.2.1
-- Check for working CXX compiler: /opt/rh/devtoolset-11/root/usr/bin/c++
-- Check for working CXX compiler: /opt/rh/devtoolset-11/root/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/d244/244/code/test/build
************************************************
start build make project...
Scanning dependencies of target tl_vi
[ 50%] Building CXX object CMakeFiles/tl_vi.dir/main.cpp.o
c++: warning: CMakeFiles/tl_vi.dir/main.cpp.o: linker input file unused because linking not done
c++: error: CMakeFiles/tl_vi.dir/main.cpp.o: linker input file not found: 没有那个文件或目录
make[2]: *** [CMakeFiles/tl_vi.dir/main.cpp.o] 错误 1
make[1]: *** [CMakeFiles/tl_vi.dir/all] 错误 2
make: *** [all] 错误 2
build /home/d244/244/code/test fail
解决办法:add_compile_options(-std=c++11 -o) 删掉 -o
改完之后