# CMake Error: IMPORTED_LOCATION not set for imported target "MyPackage::MyLib"

- **ID:** `cmake/imported-location-not-set`
- **Domain:** cmake
- **Category:** config_error
- **Verification:** ai_generated
- **Fix Rate:** 95%

## Root Cause

An imported target created via add_library(MyPackage::MyLib UNKNOWN IMPORTED) or similar lacks the IMPORTED_LOCATION property, which is required for linking.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| CMake 3.22 | active | — | — |
| CMake 3.23 | active | — | — |
| CMake 3.24 | active | — | — |

## Workarounds

1. **add_library(MyPackage::MyLib UNKNOWN IMPORTED)
set_target_properties(MyPackage::MyLib PROPERTIES
  IMPORTED_LOCATION "/usr/local/lib/libmylib.so"
)** (95% success)
   ```
   add_library(MyPackage::MyLib UNKNOWN IMPORTED)
set_target_properties(MyPackage::MyLib PROPERTIES
  IMPORTED_LOCATION "/usr/local/lib/libmylib.so"
)
   ```
2. **# In MyPackageConfig.cmake:
add_library(MyPackage::MyLib UNKNOWN IMPORTED)
set_target_properties(MyPackage::MyLib PROPERTIES
  IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/lib/libmylib.so"
)** (90% success)
   ```
   # In MyPackageConfig.cmake:
add_library(MyPackage::MyLib UNKNOWN IMPORTED)
set_target_properties(MyPackage::MyLib PROPERTIES
  IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/lib/libmylib.so"
)
   ```

## Dead Ends

- **** — CMake requires a non-empty path; an empty string causes the same error or undefined behavior. (100% fail)
- **** — The property name must match exactly; misspelling leads to the same error. (95% fail)
