Build and Install asdcplib

L./src/crypto/API/Runtime/Cpp/x86_64 ./lib/libasdcp_x64.a -lpthread -L ./ -L/opt/mysql/lib -L/usr/local/mysql/lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib -L/usr/local/lib -L/opt/xerces-c/lib -L/usr/local/xerces-c/lib -L/usr/local/libiconv/lib -L/usr/local/conv/lib -L/opt/libiconv/lib -L/usr/lib -L/lib64 -Xlinker "-(" -lasdcp -lpthread -lmysqlclient -lxerces-c -luuid -lcrypto -lssl -Xlinker "-)" /usr/bin/ld: ./bin/CMXFParserModule.obj: in function `CMXFParserModule::InitAudioParser(char const*, unsigned long&)': /usr/local/src/C++8/C++8/src/mxfparser/MXFParserModule/CMXFParserModule.cpp:142: undefined reference to `CAudioMXFParser::CAudioMXFParser()' /usr/bin/ld:
=============================

wsl@LAPTOP-N39A7Q24:/usr/local/src/C++8/C++8$ sudo apt-get install libasdcp-dev libkumu-dev [sudo] password for wsl: Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package libasdcp-dev E: Unable to locate package libkumu-dev wsl@LAPTOP-N39A7Q24:/usr/local/src/C++8/C++8$

===========================

Since the MXF parser libraries (libasdcp-dev and libkumu-dev) aren't available through your package manager, we'll need to build them from source. Here's how to do it:

Step 1: Build and Install asdcplib (which includes Kumu)

bash

复制

# Install dependencies
sudo apt-get update
sudo apt-get install -y git build-essential autoconf libtool

# Clone the repository
git clone https://github.com/cinecert/asdcplib.git
cd asdcplib

# Build and install
./bootstrap  # Only needed if building from git
./configure --prefix=/usr/local
make
sudo make install

# Refresh library cache
sudo ldconfig

Step 2: Modify Your Makefile

Add these changes to your makefile:

makefile

复制

# Add these paths to LIBPATH
LIBPATH += -L/usr/local/lib

# Update LIBS (order matters!)
LIBS = -lasdcp -lkumu -lpthread -lmysqlclient -lxerces-c -luuid -lcrypto -lssl

Step 3: Clean and Rebuild Your Project

bash

复制

sudo make -f makefile_64 clean
sudo make -f makefile_64

Alternative Solution (If Building asdcplib Fails)

If you can't build asdcplib, we can modify your project to use the MXF parser files you already have:

  1. First, check what MXF parser files you actually have:

bash

复制

ls -l src/mxfparser/MXFParserModule/
  1. Then we would need to:

  • Identify which parser implementation files you have

  • Add them to your makefile

  • Adjust the code to use your local implementations instead of the library versions

Would you like me to provide instructions for this alternative approach instead?

Verification

After installing asdcplib, verify the libraries exist:

bash

复制

ls -l /usr/local/lib/libasdcp*
ls -l /usr/local/lib/libkumu*

Let me know if you encounter any issues during the asdcplib installation process, or if you'd prefer to try the alternative solution using just the files you have in your project.

=============================

after downloaded, in the folder asdcplib, no bootstrap there ------------------- wsl@LAPTOP-N39A7Q24:/usr/local/src/asdcplib$ pwd /usr/local/src/asdcplib wsl@LAPTOP-N39A7Q24:/usr/local/src/asdcplib$ ls CHANGES CMakeLists.txt CONTRIBUTING.md COPYING Makefile.am README.cmake README.md autogen.sh configure.ac m4 registers src win32 wsl@LAPTOP-N39A7Q24:/usr/local/src/asdcplib$

===============================

Since the bootstrap file is missing in your asdcplib source, let's use the available autogen.sh script instead. Here's the corrected build process:

Step-by-Step Build Instructions:

  1. Prepare the build system:

bash

复制

cd /usr/local/src/asdcplib
sudo apt-get install -y autoconf automake libtool
chmod +x autogen.sh
  1. Generate configure script:

bash

复制

./autogen.sh
  1. Configure and build:

bash

复制

./configure --prefix=/usr/local
make
  1. Install the libraries:

bash

复制

sudo make install
sudo ldconfig

Verify Installation:

bash

复制

ls /usr/local/lib/libasdcp*
ls /usr/local/lib/libkumu*

Makefile Modifications:

Add these to your project's makefile:

makefile

复制

# Add these paths
INCPATH += -I/usr/local/include/asdcp -I/usr/local/include/kumu
LIBPATH += -L/usr/local/lib
LIBS = -lasdcp -lkumu $(YOUR_EXISTING_LIBS)

Troubleshooting Tips:

  1. If you get "Permission denied" errors during installation:

bash

复制

sudo chown -R $USER:$USER /usr/local/src/asdcplib
  1. If you see missing header errors:

bash

复制

sudo apt-get install libexpat-dev
  1. If the build fails with C++11 errors:

bash

复制

export CXXFLAGS="-std=c++11"
./configure --prefix=/usr/local

Would you like me to provide more specific guidance for any particular error you encounter during this process? The exact steps might vary slightly depending on your WSL distribution and installed packages.

你可能感兴趣的:(c++)