问题标签 [linker-flags]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gcc - 外部变量未定义但编译器没有错误
我正在编译我的 .so 库代码并遇到了一个奇怪的问题。在一个头文件中,我已经清除了一个变量 extern,该变量包含在其他 .c 文件中,并且没有在任何地方定义。代码编译得很好,在运行时它会出错。为什么编译时没有错误或警告?我正在使用 gcc 9。
linker-errors - D 编译器 (dmd) 中的链接器失败
我不知道如何解决这个错误,请帮我解决这个问题。
操作系统: macOS
DMD 安装: brew install dmd
叮当串:
- 链接器字符串:
linker - SEGGER Embedded Studio .a 文件链接问题
我正在尝试将基于 Makefile 的 Cortex-M3 项目导入 SEGGER Embedded Studio(SEGGER Embedded Studio for ARM Release 5.10b Build 2020091601.43513)。
我的项目可以编译和链接,但是与原始项目相比,二进制文件的大小太大了。生成的可执行文件有效,但占用了太多 FLASH 空间。
比较映射文件,我看到某个库的所有符号和内容(ELF .a 文件拖放到源代码树中)都使用 SEGGER 链接器链接到我的二进制文件中。
我无法重建 .a 文件,因为它是由第三方以二进制形式提供的。
我试过了
- 将 .a 文件像源文件一样放置在源层次结构中
- 将链接器配置中的文件称为“附加输入文件”
如何从我的解决方案中强制 SEGGER 链接器去除未使用的符号?
“来自 SEGGER 产品手册:消除所有未使用的代码和数据以获得最小尺寸的图像。”
c - Eclipse CDT 中最后的链接器选项
我正在尝试在 Eclipse CDT 中构建一个使用Opus
和Alsa
库的 C 程序。我通常在命令行中编译程序如下:
但我无法在 eclipse CDT 中实现同样的效果。我将链接器标志添加到
Eclipse 构建期间生成的命令是:
如何让 Eclipse 将链接器标志放在最后?否则,代码无法编译。
c++ - add_compile_options 和 add_link_options 之间的区别也标记了每个选项支持
多年来,我一直在使用.bat
文件来构建我的应用程序。最近,由于它的优雅而切换到 CMake,我遇到了一种情况,我不得不猜测我应该放入 CMake 的标志add_link_options
和add_compile_options
我在我的 BAT 文件中使用的示例标志,
并且,在 CMake 中,此标志已变为(经过反复试验),
老实说,我找不到任何有关该标志add_link_options
和add_compile_options
支持的信息。
我知道什么是链接器,但在涉及add_link_options
链接器标志时丢失了。
我习惯于在单行中编译所有内容,现在在CMake中,所有内容似乎都涉及单独的步骤。
c++ - 在 CMake 中为 CPLEX 传递链接器标志
简而言之:我无法将使用 CPLEX 的程序与 CMake 链接,链接器似乎没有找到 CPLEX 库 ( cplex
),但找到了一些其他库 ( ilocplex
)。从命令行,它确实有效。
详细的:
对于使用 CPLEX 的程序:
我有以下内容CMakeLists.txt
:
和cmake/FindCPLEX.cmake
:
CPLEX 相关的 CMake 输出是
错误是
没有最后一行CMakeLists.txt
,错误是
那就是链接器在IloEnv
in/opt/ibm/ILOG/CPLEX_Studio_Community201/concert/include/ilconcert/iloenv.h
和IloModel
in/opt/ibm/ILOG/CPLEX_Studio_Community201/concert/include/ilconcert/ilomodel.h
但不是IloCplex
in 中找到类/opt/ibm/ILOG/CPLEX_Studio_Community201/cplex/include/ilcplex/ilocplexi.h
。
从命令行编译是可行的(为了便于阅读,在此处进行了格式化):
c++ - 用 c++ 开发的可执行文件包含可读文本中的文件名
我们使用 MSVC2019 开发 c++ 应用程序。在文本编辑器中打开可执行文件会显示具有绝对路径的源文件的文件名嵌入在 exe 文件中。如何摆脱这些文件名以隐藏本地计算机(目录结构)中的私人数据。发布版本也会发生这种情况。
c++ - mariadb 连接器 c 的链接选项
Sooo,我正在编写一个 C++ 应用程序来从套接字接收数据并将其保存到 MariaDB 数据库中。
我从 libmariadb3 包中包含了 MariaDB 连接器 c 库,它可以正常工作。
编译程序时,我必须添加链接选项 -l mysqlclient。
编译命令将是:
所以我的问题是为什么我必须添加此链接选项以及如何解决它以便我不必添加此选项?
(这是一个示例编译命令。实际上我正在使用 cmake 进行编译,并且我自己编译了 mariadb 连接器 c 库。cmake 中的链接器选项将是 target_link_options(${PROJECT_NAME} PUBLIC -lmysqlclient))
c++ - 似乎找不到链接器我在 python.h 下寻找链接对象
我已经python3.4
安装并且已经安装python3-dev
(我有目录/usr/include/python3.4
)。我也boost-python-dev
安装了。
要编译我的 cpp 文件,我正在使用
但我的编译器似乎找不到-lpython3.4
我也厌倦了,-lpython3
-lpython
-Python3.4
但没有任何工作。
cmake - 带引号的 target_link_options 参数(忍者)
我的 CMakeLists.txt 的一部分:
输出cmake:
但在 build.ninja 中:
需要:
我该如何解决这个问题?
UPD
我添加到 CMakeLists.txt:
并在 build.ninja 中输出:
它仍然删除'\'符号