GCC编译参数记录

1. 如果想隐藏不想导出的函数,设置默认的函数导出选项,这样只有明确想要导出的函数才导出(不同编译器可能不一样)

-fvisibility=hidden

 

2.默认情况下,GCC/G++链接时优先链接动态库,如果没有动态库,则链接相应的静态库。同时,GCC/G++也提供了链接选项 -Wl,-Bstatic 和 -Wl,-Bdynamic 供用户指定链接动态库或者静态库。

 

3. 表示强制采用本地的全局变量定义

-Wl,-Bsymbolic -Wl,-Bsymbolic-functions -fPIC

 

4. 增加运行时库查找路径(提供给别人的库,linux经常出现找不到库的情况,可以尝试设置这个值,使用相对路径去查找库)

-Wl,-rpath=.

 

5. 当发布对外的动态库的时候,会想着把编译过程链接的其他静态库导出的函数都隐藏,使发布的库只有我们想要的API(不同的编译器,可能这个常数不一样,参考https://www.orcode.com/question/504769_kea106.html

-Wl,--exclude-libs,ALL

 

6. 安全编译选项:-fPIC -fvisibility=hidden -Wl,--exclude-libs,ALL -Wl,-z,relro,-z,now -Wl,-z,noexecstack -fstack-protector

 

7. 链接库的时候,有时候链接了某个库,但是还缺那个库的符号,尝试把该库链接的顺序放到后面,或许能解决

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
rsync命令中的--exclude选项用于排除指定的文件或文件夹,使其在同步过程中不被复制。通过使用--exclude选项,可以提高同步过程的效率。在给定的引用中提到了通过rsync的exclude-from选项来实现排除。这样可以在一个单独的文件中列出要排除的文件或文件夹,以便灵活地管理需要排除的内容。 在引用中,给出了一个示例命令,仅同步名为a的目录,并排除其他文件和文件夹。通过使用--include选项,指定要包含的目录,然后使用--exclude选项,排除除了指定目录之外的所有内容。 在引用中,给出了一个示例命令,仅同步名为a的目录下的a.txt文件,并排除其他内容。同样使用了--include和--exclude选项,通过指定要包含的文件和文件夹,然后排除其他内容。 在引用中,给出了一个示例命令,同步所有的a.txt文件。如果目标目录中没有该文件,则会全部同步。如果某个目录下已经存在该文件,则不会替换。同样使用了--include和--exclude选项,通过指定要包含的文件和文件夹,然后排除其他内容。 总结来说,rsync命令中的--exclude选项可以用于排除指定的文件或文件夹,以提高同步效率。可以通过在命令中使用--include选项来指定要包含的文件和文件夹,然后使用--exclude选项来排除其他内容。这样可以根据需要灵活地管理同步过程中的内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值