Clion如何部署项目?

时间:2016-02-28 05:49:52

标签: c++ c++11 clion

我有以下 CMakeLists.txt

cmake_minimum_required(VERSION 3.3)
project(Thesis)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp Graph.h Graph.cpp)
add_executable(Thesis ${SOURCE_FILES})

我在自定义文件夹ClionProjects\Thesis\exe\Release上使用Run-> Build(作为发行版),我得到一个可执行文件Thesis.exe。如果我打开它,我会收到以下连续错误:

.prop()

我到底错过了什么?

2 个答案:

答案 0 :(得分:5)

我的解决方案是静态链接库。那就是没有必要在你的.exe旁边站着一个尴尬的.dll。

在CMakeLists.txt上添加一行

set(CMAKE_EXE_LINKER_FLAGS -static)

解决了我的问题。如果您出于某种原因需要它,还有其他两个选项也可以使用。

#set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS} -static-libgcc -static-libstdc++ -static")
#set(CMAKE_EXE_LINKER_FLAGS=-static-libgcc -static-libstdc++ -static)

我的.exe从100KB增加到1MB

编辑:一些更酷的选项

在问题的原始-s添加了-O3CMakeLists.txt

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -s -O3")

-s将大小从1MB缩小到650KB。 -s

-O3应将优化级别设置为3,即最大-O3

您可以查看gcc.gnu.org site中的所有选项。有太多了。使用"查找"您的浏览器选项(Ctrl + f)。

答案 1 :(得分:0)

您缺少2个必需的DLL。

解决此问题的最简单方法是告诉编译器使用GCC中的-static选项静态链接每个库。

另一种方法是将这些DLL复制到可执行文件所在的文件夹中。

第三种方法是找到这些DLL和register them