This commit is contained in:
j842 2025-05-26 13:31:56 +12:00
parent ad4d0ddfda
commit d0b9d80445
4 changed files with 57 additions and 0 deletions

3
build.sh Normal file
View File

@ -0,0 +1,3 @@
#!/bin/bash
docker build -t cpp-httplib-builder .

20
install_host.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/bash
sudo apt install -y nlohmann-json3-dev wget curl cmake ninja-build
if [ ! -f /usr/local/lib/libassert.a ]; then
git clone https://github.com/jeremy-rifkin/libassert.git
git checkout v2.1.5
mkdir libassert/build
cd libassert/build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j
sudo make install
cd ../..
rm -rf libassert
fi
if [ ! -f /usr/local/include/httplib.h ]; then
wget https://raw.githubusercontent.com/yhirose/cpp-httplib/refs/heads/master/httplib.h
sudo mv httplib.h /usr/local/include/httplib.h
fi

14
test/CMakeLists.txt Normal file
View File

@ -0,0 +1,14 @@
cmake_minimum_required(VERSION 3.10)
project(cppstaticbuild)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Static build settings
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static")
include_directories(/usr/local/include)
add_executable(main main.cpp)
target_link_libraries(main pthread)

20
test/main.cpp Normal file
View File

@ -0,0 +1,20 @@
#include <iostream>
#include <httplib.h>
#include <nlohmann/json.hpp>
#include <libassert/assert.hpp>
int main() {
httplib::Client cli("https://ipinfo.io");
auto res = cli.Get("/ip");
ASSERT(res->status == 200, "Failed to get IP");
nlohmann::json j;
j["ip"] = res->body;
j["status"] = res->status;
std::cout << j.dump(4) << std::endl;
return 0;
}