support bazel complie this project and format code.
This commit is contained in:
4
basic_content/extern/README.md
vendored
4
basic_content/extern/README.md
vendored
@@ -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
15
basic_content/extern/extern_c++/BUILD
vendored
Normal 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"]
|
||||
)
|
6
basic_content/extern/extern_c++/add.cpp
vendored
6
basic_content/extern/extern_c++/add.cpp
vendored
@@ -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;
|
||||
}
|
||||
|
2
basic_content/extern/extern_c++/add.h
vendored
2
basic_content/extern/extern_c++/add.h
vendored
@@ -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
|
||||
|
BIN
basic_content/extern/extern_c++/add.o
vendored
BIN
basic_content/extern/extern_c++/add.o
vendored
Binary file not shown.
BIN
basic_content/extern/extern_c++/main
vendored
BIN
basic_content/extern/extern_c++/main
vendored
Binary file not shown.
14
basic_content/extern/extern_c/BUILD
vendored
Normal file
14
basic_content/extern/extern_c/BUILD
vendored
Normal 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"],
|
||||
)
|
4
basic_content/extern/extern_c/add.cpp
vendored
4
basic_content/extern/extern_c/add.cpp
vendored
@@ -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; }
|
||||
|
2
basic_content/extern/extern_c/add.h
vendored
2
basic_content/extern/extern_c/add.h
vendored
@@ -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
|
||||
|
BIN
basic_content/extern/extern_c/add.o
vendored
BIN
basic_content/extern/extern_c/add.o
vendored
Binary file not shown.
BIN
basic_content/extern/extern_c/main
vendored
BIN
basic_content/extern/extern_c/main
vendored
Binary file not shown.
Reference in New Issue
Block a user