2016-12-08 126 views
0

对不起,有关英文错误)请帮忙。我尝试从“Hellow world”例子构建V8引擎。它将嵌入到我的基础项目中,所以我需要使用Cmake构建它(系统是macOS Sierra)。我整理了V8发动机(建立由存储在了目录默认库),我有以下的文件系统结构:与Cmake搭建v8引擎

screen file system

如示例显示了它以后最建立与本作的表达:

g++ -I. hello_world.cpp -o hello_world -Wl,--start-group out/x64.release/obj.target/{tools/gyp/libv8_{base,libbase,external_snapshot,libplatform},third_party/icu/libicu{uc,i18n,data}}.a -Wl,--end-group -lrt -ldl -pthread -std=c++0x 

也请看看我的CMakeLists.txt文件:

screen CMakeLists.txt

布坎南ILD我有以下错误的输出:

ld: symbol(s) not found for architecture x86_64 
+0

是否自制'v8'公式为你的作品?如果你需要最新的v8版本,请查看[pinepain/devtools](https://github.com/pinepain/homebrew-devtools)下的我的'v8 @ 5.7'公式。由于最近的版本将libbase和其他版本构建为动态的,因此您不太可能将其与项目一起构建,因此现在更简单了。要构建hello世界,请参阅[hello_world_build_osx.sh](https://github.com/pinepain/php-v8/blob/upgrade-to-v8-5.7/scripts/test_v8/hello_world_build_osx.sh)脚本我用来测试v8 build (注意,你可能想要指定正确的ROOT路径)。 – pinepain

+0

你能否发表什么符号? – pinepain

+0

您需要实际提供错误输出。此外,不要发布文字图像,发布问题中的文字。 – xaxxon

回答

0

我解决了问题,并为未来的我写我的步骤,如何在Mac OS打造V8:

  1. 构建V8发动机没有快照,并为共享库本地平台:sudo make library =共享快照=关闭本机;

  2. 编译叮当(海湾合作委员会抛出错误,像“未定义的符号体系结构...”等),但铿锵在Mac编译罚款;从您的./out目录中的文件

  3. 复制*/dylib到usr/local/lib目录

+0

如果在与其他程序链接时遇到一堆错误,您可能需要告诉它使用libC++而不是libstdC++进行编译。看到我在这里设置的环境变量:https://github.com/xaxxon/v8toolkit/blob/master/osx_v8_build.md您还需要从该目录中复制一对.a文件,因为并非所有东西都内置到共享中图书馆。 – xaxxon