Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Can';t在Mac OS X c++;应用_C++_Macos_Osx Snow Leopard_Strip - Fatal编程技术网

C++ Can';t在Mac OS X c++;应用

C++ Can';t在Mac OS X c++;应用,c++,macos,osx-snow-leopard,strip,C++,Macos,Osx Snow Leopard,Strip,我正试图去除MacOSX应用程序中所有不需要的符号。如果在linux应用程序上使用“-strip unneeded”执行此操作,则应用程序上的符号表为空且不返回任何内容 在MacOSX上,我看到了与我的类的typeinfo和vtable条目以及一些函数相关的符号。据我所知,这发生在头文件中定义并标记为inline的函数上。nm输出中存在来自外部库的未定义函数,但标记为“U” strip-u-r myapp 似乎并没有移除它们 正在尝试将它们放入删除文件中,并执行以下操作: strip-u-r-r

我正试图去除MacOSX应用程序中所有不需要的符号。如果在linux应用程序上使用“-strip unneeded”执行此操作,则应用程序上的符号表为空且不返回任何内容

在MacOSX上,我看到了与我的类的typeinfo和vtable条目以及一些函数相关的符号。据我所知,这发生在头文件中定义并标记为inline的函数上。nm输出中存在来自外部库的未定义函数,但标记为“U”

strip-u-r myapp 似乎并没有移除它们

正在尝试将它们放入删除文件中,并执行以下操作: strip-u-r-r remove_file.txt myapp

也不行。这是一个单片二进制文件,其唯一共享库依赖项是corefoundation和veclib框架


有什么建议吗?< /P> < P>没有明确的解决方案(我仍然在学习C++(和目标C++)的过程中,并且学会处理这些东西),但是你可以查看一下:

“隐藏内联方法”的当前设置是什么?(双击“组和文件”列中的目标,切换到“生成”选项卡,向下滚动到“代码生成”,或者是此设置:


[GCC_INLINES_ARE_PRIVATE_EXTERN,-fvisibility INLINES hidden]“启用时,内联方法的脱机副本声明为‘PRIVATE EXTERN’。

出于某种原因,mac os x上的二进制文件中存在所有这些符号信息。编译我的应用程序时使用“-fvisibility=hidden”修复了该问题,因此nm命令只列出未定义的符号。我现在使用“strip-u-r-arch all myapp”。还有一件小事,我最近正在阅读vecLib和vImage上的苹果文档。我注意到,他们建议针对Accelerate.framework进行链接,这是vecLib.framework和其他框架的总括框架。(如果您从链接向上滚动几英寸/厘米,您将看到“vecLib.framework 10.0 N/a已弃用。请改用Accelerate.framework。请参阅“Accelerate framework”。)如果听起来像是说vecLib.framework本身已弃用,vecLib.framework本身未弃用,不赞成直接针对它而不是Accelerate.framework进行链接。希望这更清楚,对不起。谢谢你的评论。目前,我只是在链接器行上将动态库直接称为:/usr/lib/libblas.dylib/usr/lib/libcblas.dylib/usr/lib/liblapack.dylib。