2016-02-28 14 views
5

मैं निम्नलिखित CMakeLists.txt है: एक कस्टम फ़ोल्डर ClionProjects\Thesis\exe\Release पर Run-क्लियन परियोजना को कैसे तैनात करें?

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}) 

मैं उपयोग कर रहा हूँ> (रिलीज के रूप में) निर्माण और मैं एक ही निष्पादन Thesis.exe मिलता है। क्या मैं वास्तव में याद आ रही है

1

: अगर मुझे लगता है कि खोलने के लिए, मैं लगातार निम्न त्रुटियों मिल सकता है?

उत्तर

4

मेरा समाधान पुस्तकालयों को स्थिर रूप से लिंक करना था। उस पर एक अजीब .dll की आवश्यकता नहीं है, जो आपके .exe के बगल में खड़ा है।

CMakeLists.txt

set(CMAKE_EXE_LINKER_FLAGS -static) 

फिक्स्ड मेरी समस्या पर एक पंक्ति जोड़ना। यहां अन्य 2 विकल्प भी हैं जो काम करते हैं, अगर आपको किसी कारण से इसकी ज़रूरत है।

#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 1 एमबी

संपादित करने के लिए 100KB से चला गया: एक जोड़े को और अधिक शांत विकल्पों

जोड़ा गया -s और -O3 मेरे सवाल का अपने मूल CMakeLists.txt करने के लिए।

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

-s 1 एमबी से 650 केबी तक कम आकार। -s

-O3 3 करने के लिए अनुकूलन स्तर जो अधिकतम -O3

आप gcc.gnu.org site से सभी विकल्पों को देख सकते हैं स्थापित करने के लिए माना जाता है। बहुत सारे हैं। अपने ब्राउज़र के "ढूंढें" विकल्प का उपयोग करें (Ctrl + f)।

0

आप आवश्यक डीएलएल में से 2 गायब हैं।

यह हल करने का सबसे आसान तरीका है कि जीसीएल में -static विकल्प का उपयोग करके संकलक को प्रत्येक पुस्तकालय के साथ लिंक करने के लिए कहें।

एक और तरीका उन डीएलएल को उस फ़ोल्डर में कॉपी करना है जिसमें आपका निष्पादन योग्य मौजूद है।

तीसरा तरीका उन DLLs और register them को ढूंढना है।

+1

क्या आप पहले विकल्प पर अधिक विस्तार कर सकते हैं जो स्पष्ट रूप से सबसे सुविधाजनक है? यह सवाल का मुद्दा है, मैं यह कैसे कर सकता हूं? मुझे नहीं पता कि कैसे। – dimitris93

+0

@Shiro: मुझे नहीं पता कि सीमेक का उपयोग कैसे करें, इसलिए मैं आपको यह नहीं बता सकता कि आपको अपनी मेकफ़ाइल में क्या जोड़ना है, लेकिन आपको '-स्टैटिक' विकल्प को जीसीसी में पास करने का तरीका पता होना चाहिए। – nom

+1

मैं असफल रूप से ऐसा करने की कोशिश कर रहा हूं – dimitris93

संबंधित मुद्दे