![](/img/trans.png)
[英]how to use main c++ program to build a sound related library (without using any third party library)
[英]How to use Bazel to build third party c++ library that includes openssl?
長話短說,我試圖使用Bazel在依賴uWebSockets的 OSX上構建項目。 我遇到一個有關如何添加openssl作為依賴項的問題,以便uWebSockets中的文件能夠包含來自openssl的文件,如下所示:
#include <openssl/opensslv.h>
我在倉庫中的WORKSPACE文件如下所示(它查找通過自制軟件安裝的openssl):
new_http_archive(
name = "uwebsockets",
urls = ["https://github.com/uNetworking/uWebSockets/archive/master.zip"],
build_file = "BUILD.uWebSockets",
)
new_local_repository(
name = "systemssl",
path = "/usr/local/opt/openssl",
build_file = "BUILD.systemssl",
)
BUILD.uWebSockets:
cc_library(
name = "uwebsockets-lib",
hdrs = glob(["**/src/*.h"]),
srcs = glob(["**/src/*.cpp"]),
visibility = ["//visibility:public"],
deps = [
"@systemssl//:openssl",
],
)
BUILD.systemssl:
cc_library(
name = "openssl",
hdrs = glob(["**/openssl/*.h"]),
srcs = glob([
"**/libssl.a",
"**/libcrypto.a",
]),
visibility = ["//visibility:public"],
)
每當我嘗試運行構建時,一切都正確構建,但我得到:
external/uwebsockets/uWebSockets-master/src/Networking.h:7:10: fatal error: 'openssl/opensslv.h' file not found
我一定在這里想念什么,我做錯了什么?
我認為您需要BUILD.systemssl文件中的“ includes”屬性,以便根據庫確定任何內容的正確包含路徑。
您的glob是否以“ **”開頭是有原因的,因為版本號是在文件路徑中編碼的? 您還應該查看WORKSPACE文件中可用於new_local_repository的“ strip_prefix”屬性,以將其刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.