2017-09-14 44 views
0

我有3个C++文件,我想用可执行文件生成,我的意思是如果我点击可执行文件,我的3个文件应该出现在它旁边。如何在可执行文件中存储C++源代码?

所以我想到了使用ofstream然后创建我这样的三个文件。但问题是,我的3个文件包含了很多线,并逃离"'将花费大量的时间...

如何能够将我的可执行文件中的C++源代码,不逃避字符串文字的麻烦?

+9

使用[原始字符串](http://en.cppreference.com/w/cpp/language/string_literal)。 – nwp

+0

但是如何?你有教程吗?谢谢 –

+0

而字符串文字不是一个好主意,因为在我的代码中,我有很多“,如果我使用字符串,我会有很多问题,例如,如果在我的代码中我有'std :: string a = “std :: cout <<”Hello“<< std :: endl;”'我不会'std :: cout <<“Hello”<< std :: endl;' –

回答

4

如果你在Linux或类似的,你可以使用objcopy在你的构建过程中要做到这一点很容易:

objcopy --input binary --output elf64-x86-64 myfile.cpp myfiletxt.o 

这里做的事情是创建一个对象文件名为myfiletxt.o,你可以再链接到你的可执行文件这个目标文件将包含一个符号,它是myfile.cpp的全部内容。然后您可以打印出来等。

+0

符号的名称是什么?它可以改变吗? – Quentin

+0

查看https://stackoverflow.com/questions/42235175/how-do-i-add-contents-of-text-file-as-a-section-in-an-elf-file – Garf365

+0

@Quentin:在这个例子中符号是'_binary_myfile_cpp_ {start,end,size}'。我想你可以使用'objcopy --redefine-sym ...'来改变它们。 –

相关问题