ld

    1热度

    2回答

    我正在为需要链接到现有THUMB代码的嵌入式核心(ARM7TDMI)编写THUMB代码。我正在使用GNU ARM嵌入式工具链(link)。我无法让链接器将现有的外部代码视为THUMB;它似乎总是认为它是ARM。我链接到的现有代码绝对是静态的,不能更改/重新编译(基本上,它是一个位于ROM芯片上的普通二进制文件)。 下面是一个例子程序,multiply.c,演示该问题: extern int ext

    0热度

    1回答

    rom1和rom2有不同的地址映射,并且不连续! 有些物体必须放入rom2。 每次连接rom1时,rom2中的对象应该是固定地址(rom2)。换句话说,rom1在链接时应该知道rom2的符号地址。 我可以链接一个精灵(rom2)到rom1?

    1热度

    1回答

    我曾尝试下面的代码foo1.c #include<stdio.h> void f(void); int x = 38; int y = 39; int main() { f(); printf("x = %d\n", x); printf("y = %d\n", y); return 0; } foo2.c double x; void f() { x = 42.0;

    0热度

    1回答

    我想我opensuse42计算机上安装tkrplot包R上。 gcc -std=gnu99 -shared -L/usr/lib64/R/lib -L/usr/local/lib64 -o tkrplot.so tcltkimg.o -L/usr/lib64 -ltcl8.6 -L/usr/lib64 -ltk8.6 -L/usr/lib64 -lX11 -lXss -lXext -L/usr/l

    2热度

    1回答

    我的目标是钩住dlopen在Linux上使用的开放函数。出于某种原因,这段代码并没有钩住dlopen-> open,但它确实钩住了我打开main.c-> open的版本。 dlopen不会使用我的符号吗? 编译过程如下: gcc main.c -ldl -ggdb gcc fake-open.c -o libexample.so -fPIC -shared export LD_PRELOAD="$

    4热度

    1回答

    我有这个库,它涉及一些需要在main()之前运行的静态初始化代码。如果你只是将所有的翻译单元编译在一起,这一切都会运行良好,但如果我提供一个静态库(.a文件)并让用户将它们的应用程序连接起来,它就不起作用 - 链接程序只是简单地忽略静态的符号初始化。 替代,Y,我可以让连接拿起静态库一切,如果我指定的-Wl,--whole-archive选项,GCC,即指定--whole-archive选项GNU

    0热度

    1回答

    SQLAPI ++有一个不寻常的功能,可以在其中设置一个字符串以告诉它在哪里可以找到ODBC共享库。在我的情况下,这是libtdsodbc.so,我的应用程序实际上在构建时链接了该库,但在运行时,这不足以使SQLAPI ++正常工作。 我的代码是: SAConnection conn; conn.setOption("ODBC.LIBS") = "libtdsodbc.so";

    0热度

    2回答

    我一直想一些webscraping和我碰到位于这个标签里面的一些有趣的数据来解析LD + JSON: <script type="application/ld+json"> 我用美丽的汤能够隔离标签 html = urlopen(url) soup = BeautifulSoup(html, "lxml") p = soup.find('script', {'type':'applica

    0热度

    1回答

    我们已经有了一个Visual Studio Android解决方案,其中包含一个静态库项目,其中包含在程序集中实现的功能。像: my.S -> libMine.a -> libMyApp.so 一些箍(下)已经跳过,让它编译。然后,主应用程序共享库项目的链接失败(在我们关心的两种体系结构 - x64和arm64上),以及未定义的对[assembly] [file]中实现的函数的引用。 似乎Vi

    1热度

    1回答

    此问题以前曾询问过gcc,但达尔文的ld(clang?)似乎可以解决这个问题。 假设我在两个文件main1.cc和main2.cc中定义了一个main()函数。如果我尝试这两种编译这些了,我会得到(预期的)符号重复错误: $ g++ -o main1.o -c main1.cc $ g++ -o main2.o -c main2.cc $ g++ -o main main1.o main2.o