C++ 链接V8时未定义的引用
我正在努力用V8编译一个非常小的示例 cpp计划是这样的:C++ 链接V8时未定义的引用,c++,linker,g++,linker-errors,v8,C++,Linker,G++,Linker Errors,V8,我正在努力用V8编译一个非常小的示例 cpp计划是这样的: #include "v8.h" int main() { v8::HandleScope handle_scope; return 0; } 编译行:g++-I/home/lteje/git/tengine/Externals/v8/include/home/lteje/git/tengine/Externals/v8/out/ia32.release/obj.target/tools/gyp/libv8_sn
#include "v8.h"
int main()
{
v8::HandleScope handle_scope;
return 0;
}
编译行:g++-I/home/lteje/git/tengine/Externals/v8/include/home/lteje/git/tengine/Externals/v8/out/ia32.release/obj.target/tools/gyp/libv8_snapshot.a test.cpp-o test-lpthread
我得到的错误是:
/tmp/ccHYtJuE.o: In function `main':
test.cpp:(.text+0x11): undefined reference to `v8::HandleScope::HandleScope()'
test.cpp:(.text+0x22): undefined reference to `v8::HandleScope::~HandleScope()'
collect2: error: ld returned 1 exit status
基本、快照和无快照库文件之间的具体区别是什么?我尝试过与它们中的每一个链接,但都不起作用:/
编译行:g++-I/home/lterje/git/tengine/Externals/v8/include/home/lterje/git/tengine/Externals/v8/out/ia32.release/obj.target/tools/gyp/libv8_snapshot.a test.cpp-o test-lpthread 此链接行不正确。请尝试以下方法:
g++ -I/home/lterje/git/tengine/Externals/v8/include \
test.cpp -o test \
/home/.../obj.target/tools/gyp/libv8_snapshot.a \
-lpthread
阅读理解订单的重要性。首先,我必须为我糟糕的英语说声抱歉。 我刚刚将.a文件链接到我自己的项目。 由于libv8_快照的依赖关系,出现ld错误。未提供 这是我的编译语句: g++-o xxxxx-I~v8/out/native/obj.target/tools/gyp/libv8{base.native,snapshot}.a~v8/out/native/obj.target/third_/icu/libicu{data,i18n,snapshot}.a~v8/out/native/obj.target/icudata/third_-party/icu/linux/icudt46_-dat.o-lrt-lpthread 我认为libv8_base.native.a libv8_snapshot.a依赖于icu和icudt46文件,并且有一些关于unix时钟时间的函数依赖于“rt”,所以添加“-lrt” 希望能对大家有所帮助~
作为一个中国人,对不起我的英语。你如何链接这些图书馆?你有一个CMakeLists.txt文件吗?如果你看底部和第3点,你能把它包括进来吗,就像你能给出完整的路径一样?你需要下载并安装v8库,如果你把它们安装在一个默认路径上,比如/usr/local/lib等等。。。然后就可以使用-llibv8或-lv8之类的工具来链接它们了。你这么做了吗?正如你从编译行看到的,我已经将它下载到一个文件夹中,并用gyp构建了它。。他们没有在我上面发布的链接上链接到v8?我甚至认为libv8已经不存在了。。它的libv8_base.a、libv8_snapshot.a和libv8_nosnapshot.a,正如我前面提到的。。你以前建造过吗?如果是,你建造的路线是什么?你没有按照说明。
.a
文件需要在命令行中跟踪源文件。