我有以下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})
Run Code Online (Sandbox Code Playgroud)
我在自定义文件夹上使用Run-> Build(作为发行版)ClionProjects\Thesis\exe\Release,我得到一个可执行文件Thesis.exe.如果我打开它,我会收到以下连续错误:
我到底错过了什么?
我的解决方案是静态链接库。不需要在.exe旁边站着笨拙的.dll。
在CMakeLists.txt上添加一行
set(CMAKE_EXE_LINKER_FLAGS -static)
Run Code Online (Sandbox Code Playgroud)
解决了我的问题。如果出于某种原因需要它,这里还有另外两个可用的选项。
#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)
Run Code Online (Sandbox Code Playgroud)
我.exe从100KB增至1MB
编辑:几个更酷的选择
新增-s和-O3我原来的CMakeLists.txt我的问题。
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -s -O3")
Run Code Online (Sandbox Code Playgroud)
-s大小从1MB减少到650KB。-s
-O3应该将优化级别设置为3,即最大-O3
您可以从gcc.gnu.org网站上看到所有选项。太多了 使用浏览器的“查找”选项(Ctrl + f)。
| 归档时间: |
|
| 查看次数: |
1728 次 |
| 最近记录: |