MacO 10.6,如果我有一个文件"unwanted.c",其中包含:
class secret_thing {
public:
secret_thing() {}
void revealing_method_name() {}
};
main()
{
secret_thing obj;
obj.revealing_method_name();
}
Run Code Online (Sandbox Code Playgroud)
现在我做:
$ g++ unwanted.c -o unwanted
$ strip unwanted
$ nm unwanted | grep secret
0000000100000eb8 T __ZN12secret_thing21revealing_method_nameEv
0000000100000eae T __ZN12secret_thingC1Ev
Run Code Online (Sandbox Code Playgroud)
如果我分离出秘密类的接口和实现,就像大多数人在编写C++代码时那样,那么剥离的可执行文件中就没有不需要的符号.可悲的是,我交给了现有数千行代码的代码库,这不是我的选择之一.
我试过-fno-rtti,作为一个疯狂的猜测,并没有解决任何问题.我已经向谷歌众神祈祷并发现许多对脱衣舞俱乐部的引用,但没有任何有用的链接.我已经在mac上浏览了strip,g ++和ld的手册页,并且没有明显的尝试,尽管"私人外部"一词很有趣,我无法弄清楚该怎么做.
[更新]可悲的是,我试图做一个小例子后出现问题.这是一个更复杂的例子,它更接近真正的问题,如果它是经过优化的,它仍然有不需要的符号.
我为坏的例子道歉.事实证明,很难找到最小的实际问题.非常感谢答案,但每个答案都让我接近解决方案.
class base {
public:
virtual int revealing_method_name() = 0;
virtual ~base() {};
};
class secret_thing : public base {
public:
int revealing_method_name() { return 0; };
};
class other_thing : public base {
public:
int revealing_method_name() …Run Code Online (Sandbox Code Playgroud) 我正在编写一个Linux内核模块,我想分配一个可执行页面.普通的kmalloc在非可执行页面中返回一个指针,在那里执行代码时会出现内核恐慌.它必须适用于Ubuntu Karmic x86,2.6.31-20-generic-pae.
我有一个软件包含几个python源和几个c ++库.我想将它们打包成一个可执行的单个文件,就像java与.jar文件一样.有没有办法做到这一点?
我们有一个Intranet网站,并在每个工作站上安装了WPF Windows可执行文件.
我们在每个工作站上都有完整的管理功能,每个用户只使用Internet Explorer.我们也知道exe的正确本地路径.
更新:我们尝试了这个锚标记,但是当我们点击它时,我们没有得到回复:
<a href="c:\Flipper\Splash.Flipper.exe">Click Here</a>
Run Code Online (Sandbox Code Playgroud)
我们也通过谷歌浏览器尝试了这一点,我们也得到了同样的(缺乏)响应.单击该链接不会发生任何事情.
我需要比较使用相同编译器/标志编译的2个可执行文件和/或共享对象,并验证它们没有更改.我们在受监管的环境中工作,因此对于测试目的而言,确切地隔离可执行文件的哪些部分已经发生变化非常有用.
由于包含有关文件信息的标头,因此使用MD5Sums/Hashes不起作用.
有没有人知道一个程序或方法来验证2个文件是否在执行上是相同的,即使它们是在不同的时间构建的?
我的项目包括htmlunit jar并下载一些页面内容.然而,可执行jar(包括libs,eclipse导出功能)只能在我创建它的机器上运行(在不同的情况下它不会执行).
编辑:它没有执行,因为它启动时不显示"启动无头浏览器"MessageBox.我使用了Eclipse Indigo:File> Export> Runnable jar> package所需的libratries到生成的jar中
帮助,众神:
import java.io.*;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.Page;
import com.gargoylesoftware.htmlunit.RefreshHandler;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.*;
import javax.swing.filechooser.FileSystemView;
Run Code Online (Sandbox Code Playgroud)
编辑:根据要求提供进一步的代码
public class MyTest
{
public static void main(String[] arguments) {
try{
JOptionPane.showMessageDialog(null, "Starting Headless Browser");
JFileChooser fr = new JFileChooser();
FileSystemView fw = fr.getFileSystemView();
String MyDocuments = fw.getDefaultDirectory().toString();
FileInputStream fstream = new FileInputStream(MyDocuments+"\\Links.txt");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
String strLineID; …Run Code Online (Sandbox Code Playgroud) 这简直让我感到困惑.我刚刚下载了Chrome源代码的1.5GB tarball.编译的相同代码压缩到大约50MB.
为什么源代码的大小和可执行文件的大小之间存在这样的差异?
我发现AppStore我的应用程序发布了一个问题!验证过程说:"iPhone/iPod Touch:应用程序可执行文件包含不受支持的结构:armv7s"
这是我链接的库:CoreLocation(必需)Twitter(可选)QuartzCore(必需)MapKit(必需)UIKit(必需)基础(必需)CoreGraphics(必需)libGoogleAnalytics.a(必需)libsqlite3.dylib(必需)CFNetwork(必填)
我也尝试删除GoogleAnalytics Library,但问题是一样的!你有什么主意吗?
谢谢
我通常在7zip命令行程序中执行操作.我正在考虑创建一个小脚本来自动执行所有操作,但我之前从未编写任何Windows shell脚本,因此甚至不知道从哪里开始.
我想创建一个可执行脚本文件,当用户双击它时,将调用7zip命令行并执行一些操作.
首先,这可能吗?如果是,那么最好的方法是什么?
executable ×10
architecture ×1
archive ×1
armv7 ×1
binary ×1
command-line ×1
comparison ×1
compilation ×1
darwin ×1
eclipse ×1
electron ×1
frameworks ×1
html ×1
htmlunit ×1
hyperlink ×1
jar ×1
java ×1
libraries ×1
linux-kernel ×1
macos ×1
nomachine-nx ×1
python ×1
strip ×1
windows ×1