如何在golang中为LDFLAGS使用相对路径
我正在尝试构建使用静态lib(.a file) 的Golang程序 我项目的目录结构如下 └─testserver ├─bin ├─pkg └─src ├─logging └─testserver ├─libtest.a └─test.go test.go中CGO的标志如下 // #cgo LDFLAGS: -L /home/test/testserver/src/testserver -ltest // #include "test.h" import "C" 当我使用ldflags -l的绝对路径时,它会罚款,但是当我更改相对路径的路径时,例如 // #cgo LDFLAGS: -L ./testserver -ltest 然后运行命令 go install testserver 它向我返回错误,并说"找不到-ltest" 我的问题
10 2023-08-07
编程技术问答社区
-Wl,-export-dynamic和-Wl,-export-dynamic(单横线与双横线)之间有什么区别?
gcc --pedantic -Wall -std=gnu11 -O2 -g -Wformat -Werror=format-security -fpie -Wno-overlength-strings -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGSEAL_ENABLE -DGDK_PIXBUF_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-honor-nans -fno-signed-zeros -fno-math-errno -Wl,--export-dynamic -Wl,--as-needed -o xnec2c main.o mathlib.o measurements.o interface.o callbacks.o
14 2023-06-19
编程技术问答社区
LDFLAGS的含义是什么?
我正在尝试为ARM Linux编译AODV.我使用sabrelite作为内核版本3.0.35_4.1.0的板.值得一提的是,我正在使用OpenEmbedded为董事会创建我的Linux发行版. AODV源代码(这给出了一些有关如何在此处陈述的手臂上安装它的迹象. ( html ). 我能够升级makefile,以与POST 2.6内核版本一起使用(如上所述,我具有3.0.35_4.1.0内核版本). 因此,基本上,我要做的是我必须创建一个模块(例如,file.ko),然后将其加载到臂中(使用insmod file.ko命令). 为此,我使用的是一个交叉编译器,其中一些值如下: echo $ cc: Arm-oe-linux-gnueabi-gcc -march = armv7-a -mthumb-Interwork -mfloat-abi = hard -mfpu = neon -mtune = cortex-a9 -sysroot =/usr/usr/local/oe
26 2023-04-12
编程技术问答社区
如何在makefile中指定RPATH?
我正在尝试在二进制中指定rpath. 我的makefile看起来像 CC=gcc CFLAGS=-Wall LDFLAGS= -rpath='../libs/' main: main.c gcc -o main main.c clean: rm -f main main.o 但是,当我使用命令readelf -a ./main | grep rpath查询rpath时,我什么也没得到 我已经尝试将RPATH指定为LDFLAGS= "-rpath=../libs/",但即使这似乎不起作用. 有人可以发布一个示例,说明我应该如何在makefile中指定rpath? GCC和LD版本是 - gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 GNU ld (GNU Binutils for Ubuntu) 2.21.0.20110327 解决方案 如果设置了变量,则可能应该使用它们.这很愚蠢,尤其是当Ma
22 2023-03-18
编程技术问答社区
如何在CMakeLists.txt中设置LDFLAGS?
我通过cmake_c_flags在CMAKE中设置了CFLAGS. 是这样可以设置LDFLAGS的吗? 解决方案 这取决于您想要的东西: a)如果要指定要链接到哪个库,则可以使用 find_library 查找libs,然后使用 target_link_link_libraries 当然,写一本好 find_package 脚本,与 add_library "> add_library "> add_library "> add_library(yourlib imported) 有正确的位置,并建立特定的前缀和后缀.然后,您只需参考" yourlib"并使用target_link_libraries. b)如果您想指定特定的Linker-Flags,例如'-mthreads'或'-wl, - 带有mingw-gcc的export-all-symbols',您可以使用 cmake_exe_linker_flags .对于模块,共享或静态库也有两个类似但无证件的标志:
18 2023-03-17
编程技术问答社区
如何在makefile中使用LDFLAGS
我是Linux OS的新手.我正在尝试使用makefile编译.c文件.数学库必须链接.我的makefile看起来像这样: CC=gcc CFLAGS=-Wall -lm all:client .PHONY: clean clean: rm *~ *.o client 当我运行make时,我会收到以下错误: "undefined reference to rint" 因此它无法链接数学库. ,但是当我明确使用 时 gcc client.c -lm -o client 它成功编译了. 所以我应该如何更改makefile以使其有效.我已经尝试添加LDFLAGS=-lm.但是我遇到了同样的错误. 我还应该补充说,当我运行make时,它将扩展到 gcc -Wall -lm client.c -o client (请注意,当我运行gcc时,最终用-lm明确行动). . 解决方案 您的Linker(LD)显然不喜欢安排GC
20 2023-03-17
编程技术问答社区
LDFLAGS在使用libtool的自动工具中的用法
取决于操作系统,我在我的configure.ac中定义了一个特殊的LDFLAGS: AC_CANONICAL_HOST if test "$host_os" = cygwin then LDFLAGS="$LDFLAGS -Wl,-no-undefined" export LDFLAGS fi AC_SUBST([LDFLAGS]) 包使用AC_PROG_LIBTOOL,当LDFLAGS传递给libtool时,-Wl前缀仍然存在,并且链接器不理解该选项.如果我删除此前缀,则AC_PROG_CXX宏失败,因为GCC扼杀在-no-undefined上.我做错了什么? LDFLAGS未提及Makefile.am,但我确保通过运行make -n来在libtool命令中享受. 我正在使用AutoConf 2.69,Automake 1.14,GMAKE 4.0和GCC 4.8.2在Cygwin 1.7.28(0.271/5/3)下(0.271/5/3)
88 2023-01-19
编程技术问答社区
通过命令行用xcodebuild设置 "OTHER_LDFLAGS"。
我已经通过command line成功编译了该项目.但是我要通过命令行设置库(.A)文件. 它成功地使用以下命令构建 /Users/Mahen/Documents/workspace/TestingApplication/Test/Test.xcodeproj -configuration调试构建 现在,我想通过命令行设置链接.a文件. 我尝试了设置"其他_ldflags"选项 -f orce_load /Users/Mahen/Documents/workspace/Test.iOS/build/Debug-iphoneos/libTest.a -lstdc++ 但无法加载, 您可以建议通过命令行链接.a文件的正确方法吗? 谢谢 解决方案 我不清楚您的确切问题是什么,但希望其中之一会帮助您或其他人: 要覆盖一个选项您去xcodebuild "OPTIONNAME=newvalue" xcodebuild "OTHER_LDFLAGS= ...
30 2022-12-04
编程技术问答社区
CMake:如何在CMakeLists.txt中设置LDFLAGS?
我在 CMake 中通过 CMAKE_C_FLAGS 设置了 CFLAGS.像这样设置 LDFLAGS 吗? 解决方案 这有点取决于你想要什么: A) 如果要指定链接到哪些库,可以使用 find_library 查找库,然后使用 link_directories 和 target_link_libraries到. 当然,写一个好的find_package 脚本,它很好地添加了带有 B) 如果您希望指定特定的链接器标志,例如'-mthreads' 或 '-Wl,--export-all-symbols' 与 MinGW-GCC,你可以使用 CMAKE_EXE_LINKER_FLAGS.对于模块、共享库或静态库,还有两个类似但未记录的标志: CMAKE_MODULE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS CMAKE_STATIC_LINKER_FLAGS
12084 2022-07-17
编程技术问答社区