add_executable创建两个二进制文件,而不是一个

时间:2018-08-14 11:50:02

标签: cmake

protoc.cmake:

set(protoc_files
  ${protobuf_source_dir}/src/google/protobuf/compiler/main.cc
)

add_executable(protoc ${protoc_files})
target_link_libraries(protoc libprotobuf libprotoc)
add_executable(protobuf::protoc ALIAS protoc)

set(PROTOC_NAME "protoc")

set_target_properties(protoc PROPERTIES
        VERSION ${protobuf_VERSION}
        OUTPUT_NAME ${PROTOC_NAME})

if(WIN32)
    set(PROTOC_SUFFIX ".exe")
    set_target_properties(protoc PROPERTIES
            SUFFIX ${PROTOC_SUFFIX})
else()
    set(PROTOC_SUFFIX)
endif()

set(PROTOBUF_PROTOC_EXECUTABLE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PROTOC_NAME}${PROTOC_SUFFIX}" PARENT_SCOPE)

我已经将google协议缓冲区编译器的源包含到我的项目中,并且我使用以前的cmake文件来生成运行时二进制文件,但是我得到了两个可执行文件:“ protoc”和“ protoc-3.6.1”,而不是一个文件。

我正在Ubuntu 18.04上使用带有捆绑的CMake 3.10.3的CLion IDE 2018.1.5。

在Windows上,我没有这样的问题。

0 个答案:

没有答案