问题标签 [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.
xcode - 如何使用 i386 和 x86_64 二进制部分的单独编译或链接选项在 Mac OS X 上编译通用库?
我正在为带有 Xcode 5.02 的 Mac OSX 编译一个使用 luajit 库(以静态链接方式)的程序。
luajit 的运行时内存机制要求在 Mac OSX 的 x86_64 构建上添加链接选项“-pagezero_size 10000 -image_base 100000000”,否则初始化时会崩溃,因为函数 luaL_newstate() 将返回 NULL。
(有关崩溃发生原因的详细技术信息,请参考此网址,因为它不是此问题帖子的主题: http ://www.freelists.org/post/luajit/luaL-newstate-fails-on-64bit- Mac-cant-set-linker-flags,2 )
但对于 i386 构建,此链接选项不是必需的,实际上它是无效的,因为图像库超过了 32 位限制。
所以现在的情况是我可以成功地在单一架构中构建程序。(使用 x86_64 架构中的链接选项和 i386 架构中的无链接选项)。但我不知道如何构建通用二进制文件。因为我找不到在通用二进制构建设置中为不同架构指定单独链接选项的地方。
有谁知道如何解决这个问题?
谢谢!
gcc - gcc 链接器映射文件用于什么?
gcc/g++ 链接器选项“-Map”生成的“.map”文件用于什么?以及如何阅读它们?
gcc - 如何使 CMake 附加链接器标志而不是附加它们?
CMake 似乎在 GCC 编译命令的前面添加了链接器标志,而不是在末尾附加它。如何使 CMake 附加链接器标志?
这是一个重现问题的简单示例。考虑使用以下 C++ 代码clock_gettime
:
这是一个 CMakeLists.txt,用于编译上面的 C++ 文件:
请注意,我们已添加-lrt
,因为它具有clock_gettime
.
编译使用:
这会引发此错误,即使您可以-lrt
在命令中看到:
这里的问题是 CMake 生成的 C++ 编译命令已经-lrt
前置。编译工作正常,如果它是:
如何使 CMake 在末尾附加链接器标志?
c++ - 在源代码中查找函数/变量定义以供参考
我的项目包含许多文件。
有时我需要知道特定函数在源代码中的定义(实现)位置。我目前所做的是在源文件中对函数名称进行文本搜索,这非常耗时。
我的问题是:有没有更好的方法(编译器/链接器标志)在源文件中找到该函数定义?....因为链接器已经经历了解决所有这些引用的所有麻烦。
我希望有比在调试器中进入函数调用更好的方法,因为函数可以隐藏在许多调用中。
ios - opencv2.framework 不使用链接器标志 -ObjC 编译
我正在使用最新版本的opencv ( opencv 2.4.9 ),并且必须具有Core Plot (绘图框架)所需的-ObjC 标志。
当我在其他标志中设置-ObjC时,我得到了很多类型的错误(实际上是 28 个):Undefined symbols for architecture i386
如下:
这是与Bartosz Bialecki相同的问题,我尝试了建议的解决方案,但问题仍然存在。
有人有想法吗?
编辑 :
这是我包含的所有框架:
c - 使用 /c 和 /MD 选项编译 C 文件,然后链接 .lib 文件
我有一个使用 3-4 个外部库的 C 文件。它是使用cl.exe
and link.exe
(MSVC) 构建的。
构建脚本显示生成exe的过程分为两个阶段-
- 使用 '/c' 选项
cl.exe
来获取.o
文件。还给出了一堆其他标志,但我关心的是/MD
. MSDN 说:
使应用程序使用运行时库的特定于多线程和特定于 DLL 的版本。定义 _MT 和 _DLL 并使编译器将库名称 MSVCRT.lib 放入 .obj 文件中。
当我们只编译而不链接时,给予/MD
with 有什么用?cl
在此之后,
link.exe
用于生成 exe。为链接指定了几个.lib
文件(如 ole32.lib、advapi32.lib、user32.lib 等以及其他非 MSVC 特定的文件)。我的问题是不是.lib
用于静态链接的文件吗?如果是,那么为什么最终的 exe 只有大约 500 KB?没有一个.lib
是导入库。如果不是,那么
link
默认情况下使用静态链接还是动态链接?/MD
给定的 withcl
在这里有什么影响吗?
c++ - 如何正确包含 libxml++ 库?
我想在 Windows 7 中编译这段代码:(这个)
我正在使用 Code::Blocks,但它给了我错误:
所以,我认为我没有正确链接我的库;我进入->项目->构建选项->编译器设置->其他选项:我添加了=>
- IC:/gdkdir/include/glib-2.0
- IC:/gdkdir/lib/glib-2.0/include
- IC:/gdkdir/lib -lglib-2.0 -lintl
- IC:/gdkdir/include/gtk-3.0
- IC:/gdkdir/include/cairo
- IC:/gdkdir/include/pango-1.0
- IC:/gdkdir/include/gdk-pixbuf-2.0
- IC:/gdkdir/include/libpng15
- IC:/gdkdir/include/pixman-1
- IC:/gdkdir/包括
- IC:/gdkdir/include/freetype2
为此,我下载了库 => libxml2 和 glibmm2.4 并将它们包括在内。
它仍然给我同样的错误!
请帮我。
更新 17/06:我也检查了这个,但它仍然给我同样的错误!
更新 18/06:这就是我所做的:
c++ - 如何让 qmake 在链接阶段在 -lpthread 之后添加 -lm
我正在尝试在使用 Qt 和 Cuda 的 armhf 平台(Jetson 板)上编译一个项目。它使用 qmake 构建。
当它链接时,它会通过构建阶段到最后,它失败并出现以下错误。无论我尝试在项目文件中放入什么,它都不会在它生成的 Makefile 中的“-lpthread”之后添加“-lm”。我认为这可以解决我的问题。
我得到的错误是:
任何人都可以建议吗?
c++ - 将链接器标志添加到 configure.ac
我想在--export-dynamic
我的项目的 configure.ac 文件中添加标志。我正在尝试编译必须在pkg-config --cflags --libs gtk+-3.0
.
以下是我的 configure.ac 文件的内容。
我怎么做?
c++ - ld 的 -u 选项如何工作以及何时有用?
我正在复制粘贴以下人的一部分ld
:-
如何实际使用此选项?就像我如何在我的源代码中触发附加模块的链接一样,这个选项什么时候真正有用?