我想用一个文件test.cpp编译程序,它使用外部库(我有dll和lib)。怎么做?
我的test.cpp
#include <ExternalLib.h>
#include <iostream>
#include <stdio.h>
#define USE_USB_AUTO_CONNECT 1
int main()
{
printf ("Characters: %c %c \n", 'a', 65);
return 0;
}
ExternalLib由第三方公司提供,包含文件:ExternalLib.lib和ExternalLib.dll。还有扩展名为的文件和。
当我使用命令编译时:
g++ test.cpp
我收到错误:
test.cpp:1:20: fatal error: ExternalLib.h: No such file or directory
#include <ExternalLib.h>
感谢您的帮助。
答案 0 :(得分:-1)
我认为您正在尝试在Linux下使用dll文件(在Windows中编译),这将无法正常工作。
无论如何,你的错误是编译器无法找到你的头文件,为了解决这个问题,你有几个选择:
1)使用-I
开关编译时提供包含路径
即:g++ test.cpp -I<path to your include directory>
2)将 ExternalLib.h 复制到 test.cpp 所在的同一目录,并使用#include "ExternalLib.h"
代替#include <ExternalLib.h>
3)从 test.cpp 所在的目录开始,提供 ExternalLib.h 的相对路径。也就是说,将#include <ExternalLib.h>
替换为#include "../../external/ExternalLib.h"
这将解决无此类文件或目录问题。然后,您还必须使用-L
(用于库路径)和-l
(用于库文件)开关提供二进制文件/库文件。