问题标签 [ldflags]
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.
cmake - 用于 CMAKE 的 LDFLAGS 中的 rpath
我目前正在将我的 automake 移植到 CMAKE 中。我试图找到相当于:
cmake 中设置我的 rpath 的相应命令是什么?
上面的命令似乎与安装时间有关。而 LDFLAGS 与链接器相关。
c - 仅在选择特定目标时才能在makefile中编译某些文件并在makefile中添加标志?
我目前在为 C 项目编写 Makefile 时遇到问题。
特别是,我的项目应该至少有两个 Makefile 目标(target_light
和target_full
),这target_light
是默认的。
target_light
应该编译我所有的源文件,除了少数需要在系统上安装外部库的文件(保存在src/extra
, 用于 .c 文件和include/extra
, 用于 .h 文件)。
target_full
应该编译所有文件,包括需要外部库的文件。它还应该在CFLAGS
和中添加一些标志LDLIBS
。
我目前有一个类似于以下的 Makefile:
我目前正在努力寻找一种添加target_full
到这个 Makefile 的方法,它也应该考虑到SRC_DIR_EXTERNAL_FILES
OBJ_DIR_EXTERNAL_FILES
SRC_EXTERNAL_FILES
OBJ_EXTERNAL_FILES
,以便仅在请求时编译附加文件。
我该如何执行此操作?在 Makefile 中是否有这样做的好方法?
我的第二个问题是:如何同时向两者添加标志,CFLAGS
并且LDLIBS
仅在target_full
选择时才添加?我试着写:
然后将$(EXECNAME)
行更改为:
但LDLIBS
似乎总是考虑附加标志,即使target_light
选择时也是如此。
我应该做类似以下几行的事情,重复两次target_full
吗?
非常感谢您提前。
makefile - C++:在 Makefile 中包含一个外部库
所以,我在 C++ 程序中包含 ncurses 库时遇到了一些麻烦。似乎我的 Makefile 设置不正确,并且找不到库函数。我使用“sudo apt-get install libncurses5-dev libncursesw5-dev”安装了该库,并且可以通过“g++ -o output src/main.cpp -lncurses”手动编译我的代码。
我的编译器设置Makefile
如下所示:
我在 ubuntu 上的 Visual Studios Code 中使用“C/C++ Makefile Project”插件。
c - 如何链接非标准位置的库进行编译
我是 linux 新手,正在尝试编译和安装一些库。
不幸的是,事情非常困难,因为我无法获得对我的机器的 sudo 访问权限,并且不得不将库安装在非标准位置。
我无法让编译器找到我安装的库。
我正在尝试安装的库之一(https://github.com/tpm2-software/tpm2-tss/blob/master/INSTALL.md)依赖于其他库,我收到以下错误代码尝试编译时,我无法修复它。
到目前为止,我一直在尝试使用以下命令在 bash 中编译它:
LDFLAGS 是包含我的 .so 和 .a 文件的文件夹,而 CFLAGS 是包含我的 h 文件的文件夹。
我可以检查是否有人知道我没有正确链接吗?
谢谢!
go - Go - “版本”包以及它是如何工作的?
我正在研究在不同的开源项目(例如operator-framework/operator-sdk
)中组织项目的方法,有时会找到version
带有version.go
文件的包:
我试图找到如何使用它来控制应用程序版本,但发现只有方法使用-ldflags
.
是否存在其他使用version
包和version.go
文件的方法?
c - 使用 LDFLAGS 链接特定库版本
我需要分别使用 ncursesw5 和 ncursesw6 交叉编译程序。我在 ncursesw6 附带的 Debian Buster 中。于是我跑了apt install libncursesw5:i386 libncursesw5-dev:i386
。
然后我试图跑
但是,当我运行时,ldd ./program
我得到了两个库。
这是 dpkg 看到的:
我只能找到一组包括:
有什么线索吗?谢谢
cmake - 对函数 nanomsg 的未定义引用
视为服务器代码:
- 我创建了一个共享库,其中包含 nanomsg 包功能。
- 加入
DEPENDS += "nanomsg"
bb文件。(没有这个<nanomsg/*.h>
给出“没有这样的文件是目录”错误)。 - 服务器将通过共享库(使用 nanomsg IPC)向客户端发送一些数据。
视为独立应用程序代码:
应用程序代码调用共享库功能,以便从服务器接收数据。
用于
target_link_libraries
共享库和包含目录。使用 bitbake 时
见过。
请帮助我。
CMakeList.txt
:
项目目录中的 nanomsg 代码路径:
在其他项目目录中创建的共享库:
测试应用名称 - nn_client:
3.
将共享库与我的源文件链接
4.
)
由于上面的一个不起作用,因此将下面的一个添加为插件 - sharednnmsg 所在的位置。
而不是上面的第 6 点尝试为
进行 bitbake 时的错误:
perl - ld:无法识别的选项'-Wl,-O1'
为 perl 的 libmoose 模块编写了一个新配方,发现以下错误,谁能帮忙修复它。
| x86_64-poky-linux-ld:无法识别的选项'-Wl,-O1' | x86_64-poky-linux-ld:使用 --help 选项获取使用信息 | 无法执行 x86_64-poky-linux-ld --sysroot=/yocto/build/tmp/sysroots/intel HASCOMPILERBD9Y/TESTyyC po -o HASCOMPILERBD9Y/TESTyyCp.so -Wl,-O1 -Wl,--hash-style= gnu -Wl,--as-needed -fstack-protector -shared : Makefile.PL 第 12 行的设备不合适的 ioctl。此发行版需要 Makefile.PL 第 12 行的工作编译器。警告:/yocto/build/tmp/work/core2-64-poky-linux/libmoose-perl/2.2014-r0/temp/run.do_configure.18534:1 $xit 25 from 'perl Makefile.PL INSTALLDIRS=vendor'
这是我的食谱: