support bazel complie this project and format code.

This commit is contained in:
zhangxing
2023-03-30 00:15:11 +08:00
committed by light-city
parent 1f86192576
commit 7529ae3a55
636 changed files with 10025 additions and 9387 deletions

View File

@@ -82,7 +82,7 @@ extern "C" {
#include "add.h"
}
int main() {
add(2,3);
std::cout << add(2, 3) << std::endl;
return 0;
}
```
@@ -99,6 +99,8 @@ gcc -c add.c
g++ add.cpp add.o -o main
```
如果使用bazel编译运行:`bazel run basic_content/extern/extern_c++:main`
而通常为了C代码能够通用即既能被C调用又能被C++调用,头文件通常会有如下写法:
```c

15
basic_content/extern/extern_c++/BUILD vendored Normal file
View File

@@ -0,0 +1,15 @@
# please run `bazel run basic_content/extern/extern_c++:main`
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
cc_library(
name = "add",
srcs = ["add.c"],
hdrs = ["add.h"],
)
cc_binary(
name = "main",
srcs = ["add.cpp"],
deps = [":add"],
copts = ["-std=c++11"]
)

View File

@@ -1,9 +1,9 @@
#include <iostream>
using namespace std;
extern "C" {
#include "add.h"
#include "add.h"
}
int main() {
add(2,3);
return 0;
std::cout << add(2, 3) << std::endl;
return 0;
}

View File

@@ -1,4 +1,4 @@
#ifndef ADD_H
#define ADD_H
extern int add(int x,int y);
extern int add(int x, int y);
#endif

Binary file not shown.

Binary file not shown.

14
basic_content/extern/extern_c/BUILD vendored Normal file
View File

@@ -0,0 +1,14 @@
# please run `bazel run basic_content/extern/extern_c:main`
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
cc_library(
name = "add",
srcs = ["add.cpp"],
hdrs = ["add.h"],
)
cc_binary(
name = "main",
srcs = ["add.c"],
deps = [":add"],
)

View File

@@ -1,5 +1,3 @@
#include "add.h"
int add(int x,int y) {
return x+y;
}
int add(int x, int y) { return x + y; }

View File

@@ -1,6 +1,6 @@
#ifndef ADD_H
#define ADD_H
extern "C" {
int add(int x,int y);
int add(int x, int y);
}
#endif

Binary file not shown.

Binary file not shown.