Libquantum代码理解Makefile
Libquantum code Understanding Makefile
我试图在这个c应用程序libquantum 中运行名为grover.c的.c文件
www.libquantum.de/files/libquantum-1.1.1.tar.gz
现在我这个应用程序已经包含了一个Makefile.in,我可以使用命令生成名为shor和grover的可执行文件
./configure
make
make demos
但当我尝试使用gcc或类似的clan运行grover.c时
clang grover.c
它给了我很多未定义函数引用的错误。
在函数oracle':
grover.c:(.text+0x50): undefined reference to
quantum_sigma_x'中grover.c:(.text+0x89):未定义对quantum_toffoli'
grover.c:(.text+0xc8): undefined reference to
quantum_toffoli的引用grover.c:(.text+0xf2):对quantum_cnot'
grover.c:(.text+0x137): undefined reference to
quantum_toffoli的未定义引用grover.c:(.text+0x16b):未定义对quantum_toffoli'
grover.c:(.text+0x1b0): undefined reference to
quantum_sima_x'的引用
我需要知道如何删除这个错误,以及我是否可以在这个应用程序中运行这个名为grover.c的c代码。
谢谢,
编译器似乎找不到一个或多个要链接的库。我的直觉是makefile
有适当的命令来调用链接器。
如果你查看你的makefile,你可能会看到一些命令,比如-L-L,当标志CCD_ 6将目录添加到库的默认搜索路径并且标志-l
用于命名要链接的库时。
例如-L/lib/openGL -lglut32
将导致库libglut32.so.X.Y.Z,该库位于/lib/openGL目录中。(这不是针对Linux系统的,但对于Mac来说应该相当类似)。
N.B.X.Y.Z是库的版本号。
一旦解决了这个问题,查找库的负载可能会出现问题,尤其是当库位于非标准位置时。
------------------------编辑-----------------------
在我发布了这篇文章并上床睡觉后,我意识到我错过了一个潜在的案例(感谢Paul Griffiths也注意到了我的遗漏……教我同时做多件事)。
无论如何,只要编译一个简单的文件,说hello.c,就像clang-hello.c-o-hello一样,因为所有东西都在一个文件中,clang将自动链接到c运行库。
如果在您的情况下,代码分布在多个文件中,比如grover.c和file1.c,则您需要执行以下操作:
clang -c grover.c -o grover.o
clang -c file1.c -o file1.o
clang grover.o file1.o -o grover
(或替换为clang grover.c file1.c-o grover)
因此,前两行正在将源代码文件(grover.c和file1.c)转换为对象文件。第三行将两个对象文件合并为一个可执行文件。
最后,这两种情况都可能涉及。您可能有多个文件以及缺少的库。
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- makefile运行它编制的代码
- 如何从外部代码和Makefile启动CodeBlocks项目
- EclipseCDT-带有现有代码的新Makefile项目-更改全局默认构建目标
- 如何使用现有代码自动生成/添加/编辑Makefile到Makefile项目
- Libquantum代码理解Makefile
- 修改(创建PHP扩展)Makefile以包含C++类和代码
- 访问代码中的Makefile变量
- Makefile,使用mpiCC编译器为main.cpp和g++为其他功能的src代码
- NetBeans生成的Makefile忽略测试返回代码
- 在Eclipse中使用现有代码打开非makefile项目
- 如何使用gdb调试带有递归makefile的代码库
- 编译器构造 - 当我编译C++代码时"undefined reference to"错误,但原始 makefile 代码编译