问题标签 [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.

0 投票
1 回答
354 浏览

cmake - 用于 CMAKE 的 LDFLAGS 中的 rpath

我目前正在将我的 automake 移植到 CMAKE 中。我试图找到相当于:

cmake 中设置我的 rpath 的相应命令是什么?

上面的命令似乎与安装时间有关。而 LDFLAGS 与链接器相关。

0 投票
1 回答
584 浏览

c - 仅在选择特定目标时才能在makefile中编译某些文件并在makefile中添加标志?

我目前在为 C 项目编写 Makefile 时遇到问题。

特别是,我的项目应该至少有两个 Makefile 目标(target_lighttarget_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吗?

非常感谢您提前。

0 投票
1 回答
195 浏览

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”插件。

0 投票
1 回答
191 浏览

c - 如何链接非标准位置的库进行编译

我是 linux 新手,正在尝试编译和安装一些库。

不幸的是,事情非常困难,因为我无法获得对我的机器的 sudo 访问权限,并且不得不将库安装在非标准位置。

我无法让编译器找到我安装的库。

我正在尝试安装的库之一(https://github.com/tpm2-software/tpm2-tss/blob/master/INSTALL.md)依赖于其他库,我收到以下错误代码尝试编译时,我无法修复它。

到目前为止,我一直在尝试使用以下命令在 bash 中编译它:

LDFLAGS 是包含我的 .so 和 .a 文件的文件夹,而 CFLAGS 是包含我的 h 文件的文件夹。

我可以检查是否有人知道我没有正确链接吗?

谢谢!

0 投票
1 回答
168 浏览

go - Go - “版本”包以及它是如何工作的?

我正在研究在不同的开源项目(例如operator-framework/operator-sdk)中组织项目的方法,有时会找到version带有version.go文件的包:

我试图找到如何使用它来控制应用程序版本,但发现只有方法使用-ldflags.

是否存在其他使用version包和version.go文件的方法?

0 投票
1 回答
438 浏览

c - 使用 LDFLAGS 链接特定库版本

我需要分别使用 ncursesw5 和 ncursesw6 交叉编译程序。我在 ncursesw6 附带的 Debian Buster 中。于是我跑了apt install libncursesw5:i386 libncursesw5-dev:i386

然后我试图跑

但是,当我运行时,ldd ./program我得到了两个库。

这是 dpkg 看到的:

我只能找到一组包括:

有什么线索吗?谢谢

0 投票
0 回答
130 浏览

cmake - 对函数 nanomsg 的未定义引用

视为服务器代码:

  1. 我创建了一个共享库,其中包含 nanomsg 包功能。
  2. 加入DEPENDS += "nanomsg"bb文件。(没有这个<nanomsg/*.h>给出“没有这样的文件是目录”错误)。
  3. 服务器将通过共享库(使用 nanomsg IPC)向客户端发送一些数据。

视为独立应用程序代码:

  1. 应用程序代码调用共享库功能,以便从服务器接收数据。

  2. 用于target_link_libraries共享库和包含目录。

  3. 使用 bitbake 时

    见过。

请帮助我。

CMakeList.txt

  1. 项目目录中的 nanomsg 代码路径:

  2. 在其他项目目录中创建的共享库:

测试应用名称 - nn_client:

3.

将共享库与我的源文件链接

4.

)

  1. 由于上面的一个不起作用,因此将下面的一个添加为插件 - sharednnmsg 所在的位置。

而不是上面的第 6 点尝试为

进行 bitbake 时的错误:

0 投票
0 回答
347 浏览

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'

这是我的食谱: