linker-flags相关内容

图片与馅饼的区别

我正在寻找二进制加密代码生成的选项,发现有两个选项可用,即PIC和PIE。我试着找出两者的不同之处,但没有找到合适的文章。如果有人能用专业和核心来举例说明不同之处,或者提供好文章的链接,那就更值得学习了。 我的基本目的是保护编译后的代码,因为ELF/PE格式可以被病毒攻击,也可以被黑客攻击,或者在反向技术的帮助下可以重新生成代码。还请提供任何其他保护编译代码免受攻击和反编译的方法。 我 ..
发布时间:2022-08-04 13:44:45 C/C++开发

gcc 链接器映射文件用于什么?

gcc/g++ 链接器选项“-Map"生成的“.map"文件有哪些用途?以及如何阅读它们? 解决方案 我建议为您投入生产的任何软件生成一个地图文件并保留一份副本. 它对于破译崩溃报告很有用.根据系统的不同,您可能会从崩溃中获得堆栈转储.堆栈转储将包括内存地址,其中一个寄存器将包括指令指针.这告诉你内存地址代码正在执行.在某些系统上,代码地址可以移动(加载动态库时,因此是动态的),但低 ..
发布时间:2022-01-11 15:31:33 其他开发

附加到 CMAKE_C_FLAGS

我将 CMake 用于一个有两个版本的项目,其中一个需要 -lglapi,另一个不需要. 到目前为止,我们使用的行看起来像这样: SET(CMAKE_C_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")SET(CMAKE_CXX_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm") 我 ..
发布时间:2021-12-26 22:02:54 C/C++开发

结合FORTRAN和C ++,链接错误

我应该在 linux 中结合一个c ++代码和旧的 fortran 代码,其中 fortan 是主要代码.我不是这方面的专家,我尝试从简单的测试开始,但是仍然无法编译它.也许我很愚蠢,但是我找不到任何可行的例子.当链接可以通过ifort完成时,我设法编译了fortran和c(需要稍后使用intel编译器和实际的fortran代码一起使用).但是,如果我没错理解的话,使用 c ++ 进行的链接必须由 ..
发布时间:2021-05-09 19:17:47 C/C++开发

CMake也将所有gcc标志也传递给nvcc

我的项目将cuda内核用于一个小模块,并且需要nvcc进行编译.在编译期间,cmake还将用于gcc的相同链接器和编译器标志传递给nvcc.在我的情况下,出现以下错误. nvcc fatal : Unknown option 'Wl,--no-as-needed' 在此中接受的答案之后>线程,如下所示,我设法删除了需要nvcc的目标的编译器标志. get_target_prop ..
发布时间:2020-07-24 05:41:21 C/C++开发

Xcode如何从编译中排除文件夹?

我看到了这并在stackO中回答,但没有找到如何排除文件夹. 我有3个文件夹,其中有很多.h,.m和.mm,我需要暂时将其排除,但不要删除引用.我该怎么办? 解决方案 通过查看链接到的帖子.这是您的操作方式: 转到“构建设置". 按加号按钮,然后选择“添加用户定义的设置" 为新字段提供EXCLUDED_SOURCE_FILE_NAMES的名称. 将路径添加到文 ..
发布时间:2020-07-24 05:41:18 其他开发

附加到CMAKE_C_FLAGS

我将CMake用于一个有两个版本的项目,其中一个版本需要-lglapi,而另一个版本则不需要-lglapi. 到目前为止,我们使用的代码如下: SET(CMAKE_C_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm") SET(CMAKE_CXX_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 ..
发布时间:2020-07-24 05:41:14 C/C++开发

从R内部设置LD_LIBRARY_PATH

我已经安装了R软件包,但是为了通过library加载它,需要将LD_LIBRARY_PATH设置为一个名为libhts.so.2的库所在的路径.加载仅在进入R之前编辑LD_LIBRARY_PATH时有效,而之后则无效. 我尝试了几种不同的方法来解决这个问题: 从R包中的configure脚本导出修改后的LD_LIBRARY_PATH. 在相同的configure脚本中创建指向共享库的 ..
发布时间:2020-07-24 05:41:07 服务器开发

即使使用-rdynamic编译的程序正在加载共享对象,您是否也可以编译它来使用本地符号呢?

我正在用C构建一个共享库,该共享库由我没有源访问权限的程序动态加载.目标平台是64位Linux平台,我们正在使用gcc进行构建.我能够在大约100行中复制该问题,但是仍然有点可读.希望它是说明性的. 核心问题是我在共享库中定义了两个非静态函数(bar和baz).两者都必须是非静态的,因为我们希望调用者能够对它们进行dlsym.此外,baz调用bar.使用我的库的程序还具有一个名为bar的函数 ..
发布时间:2020-05-01 09:59:40 服务器开发

“Unknown class< MyClass>在Interface Builder文件中“错误可以用行读取修复”[MyClass class]"

我读了以下答案,所以我知道“Interface Builder文件中的未知类”错误可以使用 -ObjC 链接器解决选项。 (仅供参考,MyClass位于静态库中。) https:// stackoverflow .com / a / 6092090/534701 我还发现单行 [MyClass class] App Delegate中的代码可以处理相同的问题,而无需使用 -ObjC 选 ..

如何让g ++使用-z multidefs 47

如何告诉 g ++ 的链接器允许符号的多重定义(选择第一次出现)? -z multidefs允许多个符号定义。默认情况下,在可重定位对象(.o文件) 之间发生的多个符号定义将导致致命错误情况。此选项可以抑制 错误条件,并允许采用第一个符号定义。 此选项仅在指定-b svr4选项时有效。 -zmuldefs 选项不被 g ++ ,也不 -z OPTION 识别。什么是正确的参数?是 ..
发布时间:2018-04-18 20:41:27 C/C++开发

什么是gcc链接器映射文件用于?

什么是由gcc / g ++连接器选项“-Map”生成的“.map”文件? 以及如何阅读它们? 解决方案 我建议您生成一个地图文件,投入生产。 它可以用于破译崩溃报告。根据系统的不同,您可能会从崩溃中获取堆栈转储。堆栈转储将包含内存地址,其中一个寄存器将包含指令指针。这告诉你内存地址代码正在执行。在某些系统上,代码地址可以移动(加载动态库时,因此是动态的),但低位字节应该保持不变。 ..
发布时间:2018-04-18 20:35:42 其他开发语言

g ++的json-spirit连接器标志是什么?

我找不到这里。 我已经安装json-spirit在我的ubuntu服务器与 apt-get install json- 要使用 g ++ 使用什么链接器标志json-spirit? 解决方案 唯一的库在这个包中被调用 libjson_spirit.a 。您可以通过向链接器步骤添加 -ljson_spirit 来链接它。 ..
发布时间:2016-10-30 00:03:25 C/C++开发

CMake AMRCC +定制链接器

我试图在使用 armcc 编译的项目中使用 cmake ,但使用自定义链接器(不是 armlink )。 toolchain.cmake 档案如下: unset(CMAKE_LINKER CACHE) 设置(CMAKE_LINKER“my_linker”CACHE字符串“”FORCE) 未设置(CMAKE_ARMCC_LINKER CACHE) 组(CMAKE_ARMCC_LIN ..
发布时间:2016-10-20 23:38:49 C/C++开发